WireMock CLI Example¶
Demonstrates WireMock CLI integration with Aspire and Kiota-generated API clients for local API mocking.
📋 Overview¶
This example shows how to:
- Set up an Aspire AppHost with WireMock CLI for API mocking
- Generate typed API clients using Kiota from OpenAPI specifications
- Wire mock services with ASP.NET Core APIs using service discovery
🏗️ Architecture¶
flowchart LR
subgraph AppHost["Aspire AppHost"]
API["aspire-wiremockcli.Api<br/>(Kiota PersonClient)"] --> WireMock["WireMock CLI<br/>Mock Server<br/>(Person API)"]
end
🧩 Components¶
| Project | Description |
|---|---|
aspire-wiremockcli.AppHost |
Aspire orchestration with WireMock mock service |
aspire-wiremockcli.Api |
ASP.NET Core API consuming the mock service |
aspire-wiremockcli.PersonClient |
Kiota-generated API client for Person data |
🔑 Key Features¶
- WireMock CLI Integration: Uses Forge's
AddWiremockCli()Aspire extension - Kiota Client Generation: Typed API client generated from OpenAPI spec
- Service Discovery: Automatic endpoint resolution between Aspire resources
- Mock Definitions: Pre-configured OpenAPI spec and stub mappings
📂 Project Structure¶
foundry/dotnet/aspire-wiremockcli/
├── aspire-wiremockcli.sln
├── aspire-wiremockcli.AppHost/
│ ├── .wiremock/ # WireMock configuration
│ │ ├── wiremock.yaml # WireMock settings
│ │ └── aspire-wiremockcli/
│ │ ├── openapi.yaml # API specification
│ │ └── stub-mappings.yaml # Mock responses
│ └── AppHost.cs
├── aspire-wiremockcli.Api/
│ └── Program.cs # API using PersonClient
└── aspire-wiremockcli.PersonClient/
├── persondata.openapi.yml # OpenAPI spec for Kiota
└── PersonApiClient/ # Generated client code
🚀 Getting Started¶
Prerequisites¶
- .NET 10.0 SDK
- Aspire 13.x
- WireMock CLI installed
- Visual Studio 2022 or VS Code
Running the Example¶
📡 API Endpoints¶
The Person API mock provides:
| Endpoint | Method | Description |
|---|---|---|
/people |
GET | List all people |
/people/{id} |
GET | Get person by ID |
🔗 Related Documentation¶
📍 Source Code¶
Location: foundry/dotnet/aspire-wiremockcli/