Development
Skill
/api-design
API design principles for REST, GraphQL, and gRPC
Claude Code
$ npx -y skills add Fujigo-Software/f5-framework-claude --skill api-design --agent claude-code
Codex
$ npx skills add Fujigo-Software/f5-framework-claude --skill api-design -a codex -y
Cursor
$ npx skills add Fujigo-Software/f5-framework-claude --skill api-design -a cursor -y
Gemini CLI
$ npx skills add Fujigo-Software/f5-framework-claude --skill api-design -a gemini-cli -y
GitHub Copilot
$ npx skills add Fujigo-Software/f5-framework-claude --skill api-design -a github-copilot -y
OpenCode
$ npx skills add Fujigo-Software/f5-framework-claude --skill api-design -a opencode -y
Windsurf
$ npx skills add Fujigo-Software/f5-framework-claude --skill api-design -a windsurf -y
SKILL.md
api-design.SKILL.mdname: api-design
description: API design principles for REST, GraphQL, and gRPC
category: skill
allowed-tools: Read, Write, Glob, Grep, Bash
user-invocable: true
context: inject
API Design Skills
Overview
API design knowledge for building clean, consistent, and developer-friendly APIs. This domain covers REST, GraphQL, gRPC, documentation standards, and best practices.
API Types Comparison
┌─────────────────────────────────────────────────────────────────────────────┐
│ API Types Comparison │
├──────────────┬──────────────┬──────────────┬──────────────┬─────────────────┤
│ Aspect │ REST │ GraphQL │ gRPC │ Best For │
├──────────────┼──────────────┼──────────────┼──────────────┼─────────────────┤
│ Protocol │ HTTP/1.1 │ HTTP/1.1 │ HTTP/2 │ │
│ Format │ JSON/XML │ JSON │ Protobuf │ │
│ Schema │ Optional │ Required │ Required │ │
│ │ (OpenAPI) │ (SDL) │ (.proto) │ │
│ Caching │ HTTP native │ Complex │ Manual │ │
│ Real-time │ Polling/SSE │ Subscriptions│ Streaming │ │
│ Learning │ Easy │ Medium │ Hard │ │
├──────────────┼──────────────┼──────────────┼──────────────┼─────────────────┤
│ Use Cases │ Public APIs │ Flexible │ Microservices│ │
│ │ CRUD apps │ Mobile apps │ Low latency │ │
│ │ Web services │ Aggregation │ High perf │ │
└──────────────┴──────────────┴──────────────┴──────────────┴─────────────────┘
Categories
REST
- REST principles and HATEOAS
- Resource naming conventions
- HTTP methods semantics
- Status codes usage
- Pagination strategies
- Filtering and sorting
- API versioning
GraphQL
- Schema design
- Queries and mutations
- Resolvers
- Subscriptions
- N+1 problem solutions
gRPC
- Protocol Buffers
- Service definitions
- Streaming patterns
- Error handling
Documentation
- OpenAPI/Swagger
- API documentation best practices
- Examples and SDKs
Patterns
- Request/Response design
- Error handling
- Authentication patterns
- Rate limiting
- Idempotency
Best Practices
- API design guidelines
- Backwards compatibility
- API evolution strategies
REST Maturity Model (Richardson)
┌─────────────────────────────────────────────────────────────────┐
│ REST Maturity Model │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Level 3: Hypermedia Controls (HATEOAS) │
│ ├── Self-documenting APIs │
│ ├── Discoverability via links │
│ └── Decoupled client-server evolution │
│ ↑ │
│ Level 2: HTTP Verbs + Status Codes │
│ ├── GET, POST, PUT, PATCH, DELETE │
│ ├── Proper status codes (200, 201, 404, etc.) │
│ └── Safe and idempotent methods │
│ ↑ │
│ Level 1: Resources │
│ ├── Multiple URIs for different resources │
│ ├── /users, /orders, /products │
│ └── Still using single HTTP verb │
│ ↑ │
│ Level 0: The Swamp of POX │
│ ├── Single URI for all operations │
│ ├── POST /api with action in body │
│ └── RPC-style over HTTP │
│ │
└─────────────────────────────────────────────────────────────────┘
API Design Decision Tree
┌─────────────────────────────────────────────────────────────────┐
│ Which API Style to Choose? │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Start Here │
│ │ │
│ ▼ │
│ Public API for third parties? │
│ │ │
│ ├── Yes → REST (with OpenAPI) │
│ │ • Easy to understand │
│ │ • Good tooling │
│ │ • HTTP caching │
│ │ │
│ └── No → Internal/Microservices? │
│ │ │
│ ├── Yes → Need real-time? │
│ │ │ │
│ │ ├── Yes → gRPC streaming │
│ │ │ │
│ │ └── No → High performance? │
│ │ │ │
│ │ ├── Yes → gRPC │
│ │ └── No → REST │
│ │ │
│
Read more
name: api-design description: API design principles for REST, GraphQL, and gRPC category: skill allowed-tools: Read, Write, Glob, Grep, Bash user-invocable: true context: inject
API Design Skills
Overview
API design knowledge for building clean, consistent, and developer-friendly APIs. This domain covers REST, GraphQL, gRPC, documentation standards, and best practices.
API Types Comparison
┌─────────────────────────────────────────────────────────────────────────────┐ │ API Types Comparison │ ├──────────────┬──────────────┬──────────────┬──────────────┬─────────────────┤ │ Aspect │ REST │ GraphQL │ gRPC │ Best For │ ├──────────────┼──────────────┼──────────────┼──────────────┼─────────────────┤ │ Protocol │ HTTP/1.1 │ HTTP/1.1 │ HTTP/2 │ │ │ Format │ JSON/XML │ JSON │ Protobuf │ │ │ Schema │ Optional │ Required │ Required │ │ │ │ (OpenAPI) │ (SDL) │ (.proto) │ │ │ Caching │ HTTP native │ Complex │ Manual │ │ │ Real-time │ Polling/SSE │ Subscriptions│ Streaming │ │ │ Learning │ Easy │ Medium │ Hard │ │ ├──────────────┼──────────────┼──────────────┼──────────────┼─────────────────┤ │ Use Cases │ Public APIs │ Flexible │ Microservices│ │ │ │ CRUD apps │ Mobile apps │ Low latency │ │ │ │ Web services │ Aggregation │ High perf │ │ └──────────────┴──────────────┴──────────────┴──────────────┴─────────────────┘
Categories
REST
- REST principles and HATEOAS
- Resource naming conventions
- HTTP methods semantics
- Status codes usage
- Pagination strategies
- Filtering and sorting
- API versioning
GraphQL
- Schema design
- Queries and mutations
- Resolvers
- Subscriptions
- N+1 problem solutions
gRPC
- Protocol Buffers
- Service definitions
- Streaming patterns
- Error handling
Documentation
- OpenAPI/Swagger
- API documentation best practices
- Examples and SDKs
Patterns
- Request/Response design
- Error handling
- Authentication patterns
- Rate limiting
- Idempotency
Best Practices
- API design guidelines
- Backwards compatibility
- API evolution strategies
REST Maturity Model (Richardson)
┌─────────────────────────────────────────────────────────────────┐ │ REST Maturity Model │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ Level 3: Hypermedia Controls (HATEOAS) │ │ ├── Self-documenting APIs │ │ ├── Discoverability via links │ │ └── Decoupled client-server evolution │ │ ↑ │ │ Level 2: HTTP Verbs + Status Codes │ │ ├── GET, POST, PUT, PATCH, DELETE │ │ ├── Proper status codes (200, 201, 404, etc.) │ │ └── Safe and idempotent methods │ │ ↑ │ │ Level 1: Resources │ │ ├── Multiple URIs for different resources │ │ ├── /users, /orders, /products │ │ └── Still using single HTTP verb │ │ ↑ │ │ Level 0: The Swamp of POX │ │ ├── Single URI for all operations │ │ ├── POST /api with action in body │ │ └── RPC-style over HTTP │ │ │ └─────────────────────────────────────────────────────────────────┘
API Design Decision Tree
┌─────────────────────────────────────────────────────────────────┐ │ Which API Style to Choose? │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ Start Here │ │ │ │ │ ▼ │ │ Public API for third parties? │ │ │ │ │ ├── Yes → REST (with OpenAPI) │ │ │ • Easy to understand │ │ │ • Good tooling │ │ │ • HTTP caching │ │ │ │ │ └── No → Internal/Microservices? │ │ │ │ │ ├── Yes → Need real-time? │ │ │ │ │ │ │ ├── Yes → gRPC streaming │ │ │ │ │ │ │ └── No → High performance? │ │ │ │ │ │ │ ├── Yes → gRPC │ │ │ └── No → REST │ │ │ │ │
Stats
24
Stars
8
Forks
Quiet
Maintenance
Python
Language
MIT
License
Last commit
Created
2434 skills104 agents
Other skills on f5-framework.
architecture
Software architecture patterns, principles, and best practices
More skills from other plugins.
Auto-invoked
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
ask-matt
Ask which skill or flow fits your situation. A router over the skills in this repo.
Auto-invoked
Questions about api-design.
- Which coding agents can use api-design?
- api-design installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

