Skill
Development
Skill
/api-design
API design principles for REST, GraphQL, and gRPC
Install
$ npx -y skills add Fujigo-Software/f5-framework-claude --skill api-design --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/api-design
Context preview
The summary Claude sees to decide when to auto-load this skill.
API design principles for REST, GraphQL, and gRPC
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
7mo ago
Last commit
7mo ago
Created
Repo: Fujigo-Software/f5-framework-claude
Other skills on f5-framework.
Skill
architecture
Software architecture patterns, principles, and best practices
Skill
Skill
Skill
Skill

