โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โ โโโโโโ โโโโโโโ โโโ โโโโ โโโโ โโโโโโโ โโโโโโโ โ
โ โโโโโโโโโโโโโโโโโโโ โโโโโ โโโโโโโโโโโโโโโโโโโโโโ โ
โ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโ โโโโโโ โโโ โ
โ โโโโโโโโโโโโโโโ โโโ โโโโโโโโโโโโโโ โโโโโโ โโโ โ
โ โโโ โโโโโโ โโโ โโโ โโโ โโโโโโโโโโโโโโโโโโโโ โ
โ โโโ โโโโโโ โโโ โโโ โโโ โโโโโโโ โโโโโโโ โ
โ โ
โ โ SOAP TO REST EVOLUTION โ โ
โ โ
โ โโโ SPECIFICATION-DRIVEN APIS โโโ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Welcome to Spec-Driven API Modernization โ where we transform messy SOAP + undocumented REST into beautiful, spec-first APIs! ๐งผโจ
โก POWER-UP UNLOCKED: Spec-Driven Development
๐ฏ DIFFICULTY: Intermediate (P2)
๐ ๏ธ TECH STACK: OpenAPI โข REST โข SOAP
โฑ๏ธ ESTIMATED RUNTIME: 4-6 hours
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐๏ธ LEGACY CHAOS โ
โ โ
โ CargoLink Express โ
โ โข WCF SOAP services โ
โ โข Undocumented REST โ
โ โข Inconsistent models โ
โ โข No versioning โ
โโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโ
โ SOAP DECODED ๐งผ โ
โ WSDL โ OpenAPI โ
โ Contracts extractedโ
โโโโโโโโฌโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโ
โ REST ACTIVATED ๐ โ
โ Endpoints analyzed โ
โ Implicit contracts โ
โโโโโโโโฌโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโ
โ OPENAPI GENERATED ๐โ
โ Unified spec โ
โ Inconsistencies fixedโ
โโโโโโโโฌโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโ
โ API MODERNIZED โจ โ
โ ASP.NET Core 9 โ
โ Spec-first โ
โ Azure API Management โ
โ SOAP compatibility โ
โโโโโโโโโโโโโโโโโโโโโโโโ
A shipping logistics platform with dual personalities:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐งผ SOAP SERVICES (Enterprise clients) โ
โ โข WCF .NET Framework 4.6.2 โ
โ โข XML request/response โ
โ โข WSDL contracts โ
โ โข WS-Security auth โ
โ โ
โ ๐ REST ENDPOINTS (Mobile apps) โ
โ โข ASP.NET Web API 1.x โ
โ โข JSON request/response โ
โ โข NO documentation! โ
โ โข Custom header API keys โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๏ธ SAME DATA, DIFFERENT MODELS โ ๏ธ
SOAP: ShipmentRequest.DeliveryAddress
REST: ShipmentDto.delivery_address
SOAP: <Status>InTransit</Status>
REST: { "status": "IN_TRANSIT" }
SOAP: SOAP Faults
REST: { "error": "whatever" }
โ No versioning
โ Different auth mechanisms
โ Duplicated business logic
โ Tribal knowledge required
Unified, Spec-First API:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐ OPENAPI 3.1 SPEC (Source of Truth) โ
โ โ
โ โ
Unified models โ
โ โ
Consistent errors โ
โ โ
Standardized naming โ
โ โ
Version management โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐ AZURE API MANAGEMENT โ
โ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โ
โ โ SOAP Endpointโโโโ โ REST Endpoint โ โ
โ โ(compatibility)โ โ โ(native) โ โ
โ โโโโโโโโโโโโโโโโ โ โโโโโโโโโโโโโโโโโโโ โ
โ โ โ โ โ
โ โโโโโโโโโโโโดโโโโโโโโโโโโโ โ
โ โ โ
โ โโโโโโโผโโโโโโโ โ
โ โSOAP-to-RESTโ โ
โ โTranslation โ โ
โ โโโโโโโฌโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ASP.NET Core 9 API โ
โ โ
โ Built from OpenAPI Specโ
โ OAuth2/OIDC (Entra ID) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
Extract SOAP contracts from WSDL files
โ
Analyze undocumented REST endpoints
โ
Generate unified OpenAPI 3.1 specification
โ
Resolve SOAP โ REST inconsistencies
โ
Implement spec-first ASP.NET Core 9 API
โ
Configure Azure APIM with SOAP translation
โ
Validate backward compatibility
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐งผ WSDL PARSING โ SOAP โ OpenAPI โ
โ ๐ REST ANALYSIS โ Implicit contracts โ
โ ๐ SPEC UNIFICATION โ Merged OpenAPI โ
โ ๐ง CODE GENERATION โ From spec to code โ
โ ๐ SOAP TRANSLATION โ Backward compat โ
โ ๐ UNIFIED AUTH โ OAuth2/OIDC โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
| Branch | Description | Status |
|---|---|---|
main |
๐ Complete lab documentation | โ |
legacy |
๐๏ธ Mixed SOAP/REST system | ๐ด |
solution |
โจ Unified OpenAPI-first API | ๐ข |
step-1-wsdl-analysis |
๐งผ SOAP contract extraction | ๐ท |
step-2-rest-analysis |
๐ REST contract extraction | ๐ท |
step-3-unified-spec |
๐ OpenAPI 3.1 generated | ๐ท |
step-4-implementation |
๐จ ASP.NET Core API built | ๐ท |
step-5-apim-setup |
โ๏ธ Azure APIM configured | ๐ข |
- โ C# and ASP.NET experience
- โ SOAP and REST concepts
- โ OpenAPI/Swagger knowledge
- โ Azure subscription (for API Management)
# 1. Clone the repo
git clone <repo-url>
cd appmodlab-spec-driven-api-modernization
# 2. Checkout legacy branch
git checkout legacy
# 3. Run SOAP services
cd CargoLink.SoapServices
dotnet run
# 4. Run REST API
cd ../CargoLink.RestApi
dotnet run
# 5. Test both APIs (Postman collection included)SOAP DECODED ๐งผ
โโโ ShipmentService.wsdl parsed
โโโ TrackingService.wsdl parsed
โโโ RateService.wsdl parsed
โโโ Data types extracted
โโโ Operations mapped
REST ACTIVATED ๐
โโโ ShipmentController analyzed
โโโ TrackingController analyzed
โโโ QuoteController analyzed
โโโ Implicit contracts documented
โโโ Inconsistencies identified
OPENAPI GENERATED ๐
โโโ Models unified (SOAP + REST)
โโโ Naming standardized
โโโ Error responses consistent
โโโ Authentication unified (OAuth2)
โโโ OpenAPI 3.1 spec complete
API MODERNIZED ๐จ
โโโ ASP.NET Core 9 project created
โโโ NSwag code generation from spec
โโโ Business logic implemented
โโโ OAuth2/OIDC configured
โโโ All endpoints functional
APIM SETUP โ๏ธ
โโโ Azure API Management deployed
โโโ Import OpenAPI spec
โโโ SOAP-to-REST translation policy
โโโ Rate limiting configured
โโโ Developer portal published
Test the complete modernization:
- ๐งผ Legacy SOAP client calls SOAP endpoint
- ๐ Azure APIM translates to REST
- ๐ New ASP.NET Core API processes request
- ๐ฆ Response flows back via APIM
- โ SOAP client receives SOAP response
- ๐ Backward compatibility achieved!
Meanwhile:
- ๐ฑ Mobile app calls REST endpoint directly
- ๐ Same ASP.NET Core API processes
- ๐ก Clean JSON response
- ๐ Modern client happy!
Complete this lab to earn:
๐ SOAP WHISPERER โ WSDL to OpenAPI conversion
๐ REST REVEALER โ Documented undocumented APIs
๐ SPEC UNIFIER โ Merged SOAP + REST to OpenAPI
๐ TRANSLATION MASTER โ SOAP-to-REST backward compat
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ LEGACY SOAP โ WCF .NET Framework 4.6.2 โ
โ LEGACY REST โ ASP.NET Web API 1.x โ
โ MODERN API โ ASP.NET Core 9 โ
โ SPEC โ OpenAPI 3.1 โ
โ GATEWAY โ Azure API Management โ
โ AUTH โ OAuth2/OIDC (Entra ID) โ
โ CODEGEN โ NSwag / AutoRest โ
โ DATABASE โ SQL Server / Azure SQL โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
BEFORE:
โโโโโโโโโโ โโโโโโโโโโ
โ SOAP โ โ REST โ
โService โ โService โ
โโโโโฌโโโโโ โโโโโฌโโโโโ
โ โ
โโ Different models
โโ Different auth
โโ Different errors
โโ Duplicated logic
AFTER:
โโโโโโโโโโโโโโโโโโโ
โ OpenAPI Spec โ
โโโโโโโโโโฌโโโโโโโโโ
โ
โโโโโโผโโโโโโ
โ Unified โ
โ API โ
โโโโโโฌโโโโโโ
โ
โโโโโโดโโโโโโ
โ APIM โ
โโโโโโโโโโโโค
โ SOAP In โโโ
โ REST In โโโโโ REST Out
โโโโโโโโโโโโ
One API, Multiple Clients, All Happy! ๐
Organization: EmeaAppGbb
Category: Spec-Driven Development
Priority: P2
Estimated Time: 4-6 hours
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โ READY TO MODERNIZE YOUR APIS? ๐งผ๐ โ
โ โ
โ Press START to begin... โ
โ โ
โ [ Check APPMODLAB.md for details ] โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ฎ INSERT COIN TO CONTINUE ๐ฎ
Made with ๐ by the AppMod Labs Squad