api-patterns

API design principles and decision-making. REST vs GraphQL vs tRPC selection, response formats, versioning, pagination.

View Source
name:api-patternsdescription:API design principles and decision-making. REST vs GraphQL vs tRPC selection, response formats, versioning, pagination.allowed-tools:Read, Write, Edit, Glob, Grep

API Patterns

> API design principles and decision-making for 2025.
> Learn to THINK, not copy fixed patterns.

🎯 Selective Reading Rule

Read ONLY files relevant to the request! Check the content map, find what you need.


📑 Content Map

FileDescriptionWhen to Read
api-style.mdREST vs GraphQL vs tRPC decision treeChoosing API type
rest.mdResource naming, HTTP methods, status codesDesigning REST API
response.mdEnvelope pattern, error format, paginationResponse structure
graphql.mdSchema design, when to use, securityConsidering GraphQL
trpc.mdTypeScript monorepo, type safetyTS fullstack projects
versioning.mdURI/Header/Query versioningAPI evolution planning
auth.mdJWT, OAuth, Passkey, API KeysAuth pattern selection
rate-limiting.mdToken bucket, sliding windowAPI protection
documentation.mdOpenAPI/Swagger best practicesDocumentation
security-testing.mdOWASP API Top 10, auth/authz testingSecurity audits


🔗 Related Skills

NeedSkill
API implementation@[skills/backend-development]
Data structure@[skills/database-design]
Security details@[skills/security-hardening]


✅ Decision Checklist

Before designing an API:

  • [ ] Asked user about API consumers?

  • [ ] Chosen API style for THIS context? (REST/GraphQL/tRPC)

  • [ ] Defined consistent response format?

  • [ ] Planned versioning strategy?

  • [ ] Considered authentication needs?

  • [ ] Planned rate limiting?

  • [ ] Documentation approach defined?

  • ❌ Anti-Patterns

    DON'T:

  • Default to REST for everything

  • Use verbs in REST endpoints (/getUsers)

  • Return inconsistent response formats

  • Expose internal errors to clients

  • Skip rate limiting
  • DO:

  • Choose API style based on context

  • Ask about client requirements

  • Document thoroughly

  • Use appropriate status codes

  • Script

    ScriptPurposeCommand
    scripts/api_validator.pyAPI endpoint validationpython scripts/api_validator.py <project_path>

      api-patterns - Agent Skills