mcpField
R
rest-api-design

rest-api-design

github.com/aj-geddesDevelopment3732.1k installsUpdated 34w ago
Repository

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

  1. 01Resource naming and HTTP methods
  2. 02Query and response format guidance
  3. 03Status codes and versioning
  4. 04Authentication and rate-limit guidance
  5. 05OpenAPI documentation

Use cases

  1. 01Designing endpoints for a new REST API
  2. 02Standardizing request and response formats
  3. 03Planning API versioning
  4. 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-design

After 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.md
http-status-codes.md
openapi-documentation.md
query-parameters.md
request-examples.md
resource-naming.md
response-formats.md
scripts/
validate-api.sh
templates/
api-scaffold.yaml

Details

From the project README

REST 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:

GuideContents
Resource NamingResource Naming, HTTP Methods & Operations
Request ExamplesRequest Examples
Query ParametersQuery Parameters
Response FormatsResponse Formats
HTTP Status CodesHTTP Status Codes, API Versioning, Authentication & Security, Rate Limiting Headers
OpenAPI DocumentationOpenAPI Documentation
Complete Example: Express.jsconst 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