Skip to content

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

cd foundry/dotnet/aspire-wiremockcli
dotnet run --project aspire-wiremockcli.AppHost

📡 API Endpoints

The Person API mock provides:

Endpoint Method Description
/people GET List all people
/people/{id} GET Get person by ID

📍 Source Code

Location: foundry/dotnet/aspire-wiremockcli/