api-design-patterns

RESTful API design, error handling, versioning, and best practices. Use when designing APIs, reviewing endpoints, implementing error responses, or setting up API structure. Triggers on "design API", "review API", "REST best practices", or "API patterns".

By asyrafhussin · 688 installs

npx skills add asyrafhussin/agent-skills --skill api-design-patterns

Source repository · Upstream listing

API Design Patterns RESTful API design principles for building consistent, developer friendly APIs. Contains 38 rules across 7 categories covering resource design, error handling, security, pagination, versioning, response format, and documentation. Metadata Version: 2.0.0 Rule Count: 38 rules across 7 categories License: MIT When to Apply Reference these guidelines when: Designing new API endpoints Reviewing existing API structure Implementing error handling and validation Setting up pagination, filtering, and sorting Planning API versioning strategy Configuring API security (auth, CORS, rate limiting) Writing API documentation (OpenAPI/Swagger) Rule Categories by Priority Priority Category Impact Prefix 1 Resource Design CRITICAL rest 2 Error Handling CRITICAL error 3 Security CRITICAL sec 4 Pagination & Filtering HIGH page , filter , sort 5 Versioning HIGH ver 6 Response Format MEDIUM resp 7 Documentation MEDIUM doc Quick Reference 1. Resource Design (CRITICAL) rest nouns not verbs Use nouns for endpoints, not verbs rest plural resources Use plural resource names rest http methods Correct HTTP method usage (GET, POST, PUT, PATCH, DELETE) rest nested resources Proper resource nesting (max 2 levels) rest status codes Appropriate HTTP status codes rest idempotency Idempotent operations with idempotency keys rest hateoas Hypermedia links for discoverability rest resource actions Non CRUD actions as sub resources 2. Error Handling (CRITICAL) error consistent format Consistent error response structure error meaningful messages Helpful, actionable error messages error validation details Field level validation errors error error codes Machine readable error codes error no stack traces Never expose stack traces in production error request id Include request IDs for debugging 3. Security (CRITICAL) sec authentication Proper auth implementation (OAuth2/JWT) sec authorization Resource level permissions (RBAC) sec rate limiting Prevent abuse with rate limiting sec input validation Validate and sanitize all input sec cors config CORS configuration with whitelists sec https only Enforce HTTPS for all traffic sec sensitive data Protect passwords, tokens, PII 4. Pagination & Filtering (HIGH) page cursor based Cursor pagination for large datasets page offset based Offset pagination for simple cases page consistent params Consistent parameter naming page metadata Include pagination metadata in responses filter query params Filter via query parameters sort flexible Flexible sorting with prefix for descending 5. Versioning (HIGH) ver url path Version in URL path (/api/v1/) ver header based Version via Accept header ver backward compatible Maintain backward compatibility ver deprecation Deprecation strategy with Sunset header 6. Response Format (MEDIUM) resp consistent structure Consistent response envelope resp json conventions JSON naming conventions resp partial responses Field selection (sparse fieldsets) resp compression Response compression (gzip/Brotli) 7. Documentation (MEDIUM) doc openapi OpenAPI/Swagger specification doc examples Request/response examples doc changelog API changelog Essential Guidelines Resource Naming Error Response Format Pagination Rate Limiting Headers How to Use Read individual rule files for detailed explanations: References [RESTful API Guidelines](https://restfulapi.net) [Zalando RESTful API Guidelines](https://zalando.github.io/restful api guidelines) [Microsoft API Guidelines](https://github.com/microsoft/api guidelines) [Google API Design Guide](https://cloud.google.com/apis/design) [OpenAPI Specification](https://swagger.io/specification) Full Compiled Document For the complete guide with all rules expanded: AGENTS.md