Introduction
'Frontend and backend types don't match' — API Contract-First writes OpenAPI spec first, auto-generates TypeScript types, validation, and mocks. Let Claude Code design this.
CLAUDE.md Rules
## API Contract-First Rules
1. Write OpenAPI 3.1 spec first
2. Auto-generate TypeScript types
3. Auto-apply Express/Fastify validation
4. Prism mock server for frontend parallel dev
- Spec is single source of truth (no drift allowed)
Generated Implementation
# api/openapi.yaml
openapi: "3.1.0"
paths:
/orders:
post:
operationId: createOrder
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateOrderRequest'
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/Order'
// Auto-generated types from OpenAPI
import type { components } from '../generated/api';
type CreateOrderRequest = components['schemas']['CreateOrderRequest'];
export const CreateOrderRequestSchema = z.object({
items: z.array(z.object({
productId: z.string().uuid(),
quantity: z.number().int().min(1).max(100),
})).min(1),
});
router.post('/orders', requireAuth, validate(CreateOrderRequestSchema), createOrderHandler);
# Mock server for frontend parallel development
prism mock api/openapi.yaml --port 4010
Summary
- openapi-typescript: auto-generate TypeScript types from spec
- Prism mock: frontend can start development before backend is ready
- Dredd in CI: verify implementation matches spec
- Zod validation: request validation from OpenAPI schema
Review with **Code Review Pack (¥980)* at prompt-works.jp*
myouga (@myougatheaxo) — Axolotl VTuber.
Top comments (0)