About rest-api-design
A design skill for developers creating or revising REST APIs. It focuses on consistent resource-oriented endpoints, request and response formats, versioning, and API documentation.
Key features
- 01Resource naming and HTTP methods
- 02Query and response format guidance
- 03Status codes and versioning
- 04Authentication and rate-limit guidance
- 05OpenAPI documentation
Use cases
- 01Designing endpoints for a new REST API
- 02Standardizing request and response formats
- 03Planning API versioning
- 04Documenting an API with OpenAPI
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ aj-geddes/ useful-ai-prompts --skill rest-api-designAfter installing, type/rest-api-designin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
references/complete-example-expressjs.mdhttp-status-codes.mdopenapi-documentation.mdquery-parameters.mdrequest-examples.mdresource-naming.mdresponse-formats.mdscripts/validate-api.shtemplates/api-scaffold.yamlDetails
From the project READMEREST API Design
Table of Contents
Overview
Design REST APIs that are intuitive, consistent, and follow industry best practices for resource-oriented architecture.
When to Use
- Designing new RESTful APIs
- Creating endpoint structures
- Defining request/response formats
- Implementing API versioning
- Documenting API specifications
- Refactoring existing APIs
Quick Start
Minimal working example:
✅ Good Resource Names (Nouns, Plural)
GET /api/users
GET /api/users/123
GET /api/users/123/orders
POST /api/products
DELETE /api/products/456
❌ Bad Resource Names (Verbs, Inconsistent)
GET /api/getUsers
POST /api/createProduct
GET /api/user/123 (inconsistent singular/plural)
Reference Guides
Detailed implementations in the references/ directory:
| Guide | Contents |
|---|---|
| Resource Naming | Resource Naming, HTTP Methods & Operations |
| Request Examples | Request Examples |
| Query Parameters | Query Parameters |
| Response Formats | Response Formats |
| HTTP Status Codes | HTTP Status Codes, API Versioning, Authentication & Security, Rate Limiting Headers |
| OpenAPI Documentation | OpenAPI Documentation |
| Complete Example: Express.js | const express = require("express"); |
Best Practices
✅ DO
- Use nouns for resources, not verbs
- Use plural names for collections
- Be consistent with naming conventions
- Return appropriate HTTP status codes
- Include pagination for collections
- Provide filtering and sorting options
- Version your API
- Document thoroughly with OpenAPI
- Use HTTPS
- Implement rate limiting
- Provide clear error messages
- Use ISO 8601 for dates
❌ DON'T
- Use verbs in endpoint names
- Return 200 for errors
- Expose internal IDs unnecessarily
- Over-nest resources (max 2 levels)
- Use inconsistent naming
- Forget authentication
- Return sensitive data
- Break backward compatibility without versioning
Comments
Markdown supported