API Migration and Consolidation with TypeSpec
Stockholm, October 14th 2025

model Speaker {
role: string; ghUsername: string; bluesky: string; websites: string[]; }
const speaker: Speaker = {
role: "Developer Tools and AI @Microsoft | OSS",
ghUsername: "@anfibiacreativa",
bluesky: "@anfibiacreativa.bsky.social",
websites: ["https://microfrontend.dev",
"https://webfragments.dev"],
};LEGACY SYSTEM- Tech Debt
- Outdated dependencies
- Tightly coupled logic
YOU ARE HERE (SORRY)
Simple Object Access Protocol (~1998).
used by XML.
SOAP
RPC
Remote Procedural Calls. Remote subroutines (XML-RPC usa XML) (~1980's)
WebSocket
Full duplex TCP enabling streaming. (~2008)
GraphQL
Open Source data query and manipulation language for API's first developed by Facebook in 2012.
RESTful
Representational State Transfer architecture pattern. (~2000)
Migra(ine)tion
Migra tion
Reducing Patterns
Enabling versioning
Facilitating spec authoring
Consolidating protocols
Introducing diagnostics
API Migration Goals and Challenges
Enabling extensibility
Breaking down silos
?
App
UI Design
microfrontend.dev - @anfibiacreativa
API FIRST
Consolidation anchor
App
UI/UX Design
microfrontend.dev - @anfibiacreativa
API FIRST
SINGLE SOURCE OF TRUTH


See Playground
Teams maintain multiple OpenAPI files
Each service defines overlapping schemas
Manual diffing, client regeneration and sync'ing
Model ONCE in .tsp files
Auto-generate outputs for all consumers
Define a centralized and unique governance with reusable libs
@service({ title: "Orders API" })
namespace Orders;
model Order {
id: string;
total: float32;
}
@get op getOrder(id: string): Order;
M
Static files
C
P
Static files
M
AI
C
P
AI
SDK Generator
Gateway
Docs
MCP Server
(wraps existing API)
Model
Alive, versioned, queryable.
Demo Time
All images: Unsplash or Flaticon.com.
Tack själv!
@anfibiacreativamicrofrontend.dev
webfragments.dev
typespec.io





typespec-mcp

@typespec
demo

API Migration with TypeSpec
By Natalia Venditto
API Migration with TypeSpec
- 21