← ClaudeAtlas

pattern-architect-api-endpointlisted

Resource-oriented REST design — the single authority for API endpoint shape decisions (paths, verbs, request / response body, status codes, error envelope, pagination, sorting, filtering, versioning, idempotency policy, rate-limit policy, trailing-slash spelling). Activate when designing, adding, or refactoring an HTTP endpoint, controller, or handler. Every decision lands in the api contract at `docs/api-contract/<entity>.yaml` which engineers implement against and reviewers verify.
MartinKChen/harness-claude-code · ★ 0 · API & Backend · score 72
Install: claude install-skill MartinKChen/harness-claude-code
# pattern-architect-api-endpoint The authority for HTTP endpoint shape. Every new or changed endpoint flows through this skill first; the decisions made here are recorded in the api contract, which engineers implement against and reviewers verify. Endpoint shape is decided here, not re-litigated in code, commit messages, or PR descriptions. ## When to activate Activate this skill whenever the user: - asks to design, add, scaffold, expose, or refactor an HTTP endpoint, route, controller, or handler - asks "what URL / verb / status code should this be?", "how should I structure this route?", or similar framing questions - asks for a review of a controller, route file, or API design doc - is wiring a new endpoint in Express, Fastify, NestJS, FastAPI, Flask, Django REST, Rails, Gin, Echo, or similar HTTP frameworks Do NOT activate for: internal function/method design that is not exposed over HTTP, GraphQL/gRPC schema work (those have their own conventions), pure client-side fetch refactors that don't change the contract, or generic "fix this bug" requests where the endpoint shape is incidental. ## Pattern The canonical shape is resource-oriented REST. Frame the endpoint as **`<verb> <resource path>`**, then fill in request/response, errors, list-query params, version, and idempotency. ```http # Collection GET /v1/orders → 200 list (paginated) POST /v1/orders → 201 created (Idempotency-Key supported) # Item GET /v1/orders/{order_id}