Mocking APIs
Overview
Generate mock API servers from OpenAPI specifications that return realistic, schema-compliant response data for development and testing. Support dynamic response generation with Faker.js data, configurable latency simulation, stateful CRUD behavior, and request recording for contract testing validation.
Prerequisites
- OpenAPI 3.0+ specification file with response schema definitions
- Mock server runtime: Prism (Stoplight), json-server, MSW (Mock Service Worker), or WireMock
- Faker.js or equivalent for realistic test data generation
- Docker for containerized mock server deployment (optional but recommended)
- Frontend or consumer application needing API stubs for parallel development
Instructions
- Read the OpenAPI specification using Read and extract all endpoint definitions, response schemas, and example values to build the mock response inventory.
- Generate response fixtures for each endpoint using schema-aware data generation: realistic names (Faker), valid emails, properly formatted dates, and relational IDs that reference other mock entities.
- Configure the mock server to match requests by method, path pattern, query parameters, and request body content type, returning the appropriate fixture.
- Add stateful behavior for CRUD operations: POST creates a record in memory, GET returns it, PUT updates it, DELETE removes it -- enabling realistic integration testing flows.
- Implement configurable response delays (50-500ms per endpoint) to simulate real-world latency and test client timeout handling.
- Add error scenario mocking: configure specific request patterns to return 400, 401, 404, 429, or 500 responses for testing error handling paths.
- Enable request recording that captures all incoming requests with timestamps and headers for later replay in contract tests.
- Create a startup script that launches the mock server on a configurable port with hot-reload when fixture files change.
See ${CLAUDESKILLDIR}/references/implementation.md for the full implementation guide.
Output
${CLAUDESKILLDIR}/mocks/server.js - Mock server entry point with route registration
${CLAUDESKILLDIR}/mocks/fixtures/ - Per-endpoint response fixture JSON files
${CLAUDESKILLDIR}/mocks/generators/ - Dynamic response generators using Faker.js
${CLAUDESKILLDIR}/mocks/scenarios/ - Error scenario configurations (4xx, 5xx responses)
${CLAUDESKILLDIR}/mocks/state.js - In-memory state store for CRUD behavior
${CLAUDESKILLDIR}/mocks/recordings/ - Captured request logs for contract testing
${CLAUDESKILLDIR}/docker-compose.mock.yml - Docker configurati