UI はローカライズ済みです。スキルの紹介と説明文書は選択した言語へ AI が自動翻訳し、コード・コマンド・パス・専門用語は原文のままです。原作者の文書が優先されます。
スキルを探す
デザイン · SKILL.md

api-design-principles

api-design-principles

Use before designing any REST API endpoint — covers URL structure, HTTP method semantics, pagination, caching, idempotency, and bulk operations across Python FastAPI, NestJS 11.x, and Spring Boot WebFlux 3.5.x. Complements openapi-spec-generation (spec format) and stack-specific implementation skills (code patterns).

Independent GitHub snapshot · Automated classification · Original documentation governs

スキルの説明

GitHub

name: api-design-principles description: Use before designing any REST API endpoint — covers URL structure, HTTP method semantics, pagination, caching, idempotency, and bulk operations across Python FastAPI, NestJS 11.x, and Spring Boot WebFlux 3.5.x. Complements openapi-spec-generation (spec format) and stack-specific implementation skills (code patterns). allowed-tools: Read metadata: triggers: REST API design, API versioning, idempotency key, ETag caching, bulk operations, pagination pattern, API checklist, URL design, HTTP methods, REST principles, CORS, rate limiting header related-skills: openapi-spec-generation, java-spring-api, nestjs-api, python-dev, architecture-design domain: api-architecture role: specialist scope: design output-format: specification last-reviewed: "2026-03-14"

Iron Law

NO API ENDPOINT DESIGN WITHOUT READING reference/rest-design-principles.md FIRST — HTTP semantics, status codes, idempotency, and caching strategies must be agreed before writing implementation code

API Design Principles

Stack-agnostic REST design principles for APIs built with Python FastAPI, NestJS 11.x, or Spring Boot WebFlux 3.5.x. Use this skill during the design phase — before writing controllers or route handlers.

When to Use

  • Designing new REST endpoints from scratch
  • Reviewing whether existing endpoints follow REST conventions
  • Choosing a pagination strategy (offset vs cursor)
  • Adding idempotency keys to mutation endpoints
  • Designing caching strategy (ETags, Cache-Control)
  • Designing bulk/batch endpoints with partial failure handling
  • Running the pre-implementation API design checklist

How This Skill Relates to Others

SkillScope
api-design-principles (this skill)Design phase — REST semantics, patterns, checklist
openapi-spec-generationDocumentation phase — OpenAPI 3.1 spec, developer guide
java-spring-apiImplementation — Spring WebFlux controllers, services
nestjs-apiImplementation — NestJS modules, controllers, DTOs
python-devImplementation — FastAPI routes, Pydantic models

Process

Step 1: Run the Pre-Implementation Checklist

Read assets/api-design-checklist.md before designing any endpoint. Focus on:

  • Resource naming and URL structure
  • HTTP method assignment
  • Status codes per operation
  • Pagination strategy choice
  • Versioning strategy

Step 2: Apply REST Design Principles

Read reference/rest-design-principles.md for detailed patterns covering:

  • URL structure and resource naming (plural nouns, shallow nesting)
  • HTTP methods and correct status codes per operation type
  • Pagination — offset-based vs cursor-based, with examples for all 3 stacks
  • Versioning strategies (URL path recommended)
  • Rate limiting headers (X-RateLimit-*)
  • Authentication (Bearer token, 401 vs 403 distinction)
  • Error response format (consistent structure across all 3 stacks)
  • Caching — Cache-Control, ETags, conditional GET (304) — all 3 stacks
  • Idempotency keys — mutation safety for payment and order endpoints — all 3 stacks
  • Bulk operations — batch endpoints with 207 Multi-Status partial failure — all 3 stacks
  • CORS configuration — all 3 stacks
  • Health and monitoring endpoints

Step 3: Document with OpenAPI

Once the design is finalized, hand off to openapi-spec-generation to generate the OpenAPI 3.1 spec.

Reference Files

FileContentLoad When
reference/rest-design-principles.mdURL structure, HTTP methods, pagination, caching, idempotency, bulk ops, CORS — examples for FastAPI, NestJS, Spring WebFluxDesigning new endpoints or reviewing REST compliance
assets/api-design-checklist.md60-item pre-implementation checklist (REST only) with stack-specific items for all 3 backendsBefore starting any new endpoint or reviewing an existing API

Error Handling

Inconsistent status codes across endpoints: Follow the status code reference in reference/rest-design-principles.md section "HTTP Methods and Status Codes". All endpoints in a service must be consistent.

Pagination strategy mismatch: Choose offset-based for admin/report endpoints, cursor-based for real-time/feed endpoints. Document the choice — do not mix strategies within the same resource collection.

保存したスキル