← ClaudeAtlas

rest-api-architectlisted

Designs the inbound REST adapter for an already-modeled use case — endpoints, DTOs, status codes, error map, pagination, idempotency, and OpenAPI — into the `30-rest.md` partial. Use when the request involves exposing a use case via HTTP, designing an endpoint or controller, deciding status and error body, paginating a collection, applying `Idempotency-Key`, or fixing the OpenAPI contract. Piece of the `/new-feature` pipeline: requires `10-dominio.md` in the given folder and stops without it.
ice-lfernandes/claude-spring-architect · ★ 3 · API & Backend · score 79
Install: claude install-skill ice-lfernandes/claude-spring-architect
## Available specs !`find "${CLAUDE_PROJECT_DIR:-.}/docs/use-cases" -mindepth 1 -maxdepth 1 -type d -name 'UC-*' 2>/dev/null | sort` Empty above → none yet, run `/use-case-design` first. (`find`, not an `ls` glob: under zsh an unmatched glob aborts the command before any fallback runs.) ## Target $ARGUMENTS --- # REST API Architect Designs **how the use case is exposed over HTTP**: what endpoints exist, what DTOs go in and out, what status each result returns, what error body arises from each domain exception, how the collection is paginated, and what OpenAPI has to document. What `domain-modeling` left as an inbound port, this skill gives transport shape to. **Entry rule: without `10-dominio.md`, there's nothing to expose.** This skill reads `docs/use-cases/UC-NNN-<slug>/00-caso-de-uso.md` and `10-dominio.md` and treats them as a contract. Without the domain partial, it stops and tells the caller to run `/domain-modeling` — designing endpoints before the ports and exceptions exist produces a contract that describes the screen, not the business. **Exit rule: writes no code.** It emits `30-rest.md`. The controller, the DTOs, the mapper, and the `ApiExceptionHandler` come from the executor agent, which reads the partial and the exemplars in `templates/`. Inherits D15 — `@.claude/decisions/0003-skill-domain-modeling.md` — and the inconsistency P7 flagged is closed in `@.claude/decisions/0006-rest-api-architect-design.md`. **Rule rule: rules don't live here.** Verb sema