administering-linux
Manage Linux systems covering systemd services, process management, filesystems, networking, performance tuning, and…
Design APIs that are secure, scalable, and maintainable using RESTful, GraphQL, and event-driven patterns. Use when designing new APIs, evolving existing APIs, or establishing API standards for teams.
Claude Code
$ npx -y skills add ancoleman/ai-design-components --skill designing-apis --agent claude-code
Codex
$ npx skills add ancoleman/ai-design-components --skill designing-apis -a codex -y
Cursor
$ npx skills add ancoleman/ai-design-components --skill designing-apis -a cursor -y
Gemini CLI
$ npx skills add ancoleman/ai-design-components --skill designing-apis -a gemini-cli -y
GitHub Copilot
$ npx skills add ancoleman/ai-design-components --skill designing-apis -a github-copilot -y
OpenCode
$ npx skills add ancoleman/ai-design-components --skill designing-apis -a opencode -y
Windsurf
$ npx skills add ancoleman/ai-design-components --skill designing-apis -a windsurf -y
name: designing-apis description: Design APIs that are secure, scalable, and maintainable using RESTful, GraphQL, and event-driven patterns. Use when designing new APIs, evolving existing APIs, or establishing API standards for teams.
Design well-structured, scalable APIs using REST, GraphQL, or event-driven patterns. Focus on resource design, versioning, error handling, pagination, rate limiting, and security.
Use when:
Do NOT use for:
Use nouns for resources, not verbs in URLs:
✓ GET /users List users ✓ GET /users/123 Get user 123 ✓ POST /users Create user ✓ PATCH /users/123 Update user 123 ✓ DELETE /users/123 Delete user 123 ✗ GET /getUsers ✗ POST /createUser
Nest resources for relationships (limit depth to 2-3 levels):
✓ GET /users/123/posts ✓ GET /users/123/posts/456/comments ✗ GET /users/123/posts/456/comments/789/replies (too deep)
For complete REST patterns, see references/rest-design.md
| Method | Idempotent | Safe | Use For | Success Status | |--------|-----------|------|---------|----------------| | GET | Yes | Yes | Read resource | 200 OK | | POST | No | No | Create resource | 201 Created | | PUT | Yes | No | Replace entire resource | 200 OK, 204 No Content | | PATCH | No | No | Update specific fields | 200 OK, 204 No Content | | DELETE | Yes | No | Remove resource | 204 No Content, 200 OK |
Idempotent means multiple identical requests have the same effect as one request.
**Success (2xx):**
**Client Errors (4xx):**
**Server Errors (5xx):**
For complete status code guide, see references/rest-design.md
| Factor | REST | GraphQL | WebSocket | Message Queue | |--------|------|---------|-----------|---------------| | Public API | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ | ⭐ | | Complex Data | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐ | | Caching | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐ | ⭐ | | Real-time | ⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | | Simplicity | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ |
For detailed protocol selection, see references/protocol-selection.md
https://api.example.com/v1/users https://api.example.com/v2/users
Pros: Explicit, easy to implement and test Cons: Maintenance overhead
Timeline: 1. Month 0: Announce deprecation 2. Months 1-3: Migration period 3. Months 4-6: Deprecation warnings 4. Month 6: Sunset (return 410 Gone)
Include deprecation headers:
Deprecation: true Sunset: Sat, 31 Dec 2025 23:59:59 GMT Link: </api/v2/users>; rel="successor-version"
For complete versioning guide, see references/versioning-strategies.md
{
"type": "https://api.example.com/errors/validation",
"title": "Validation Error",
"status": 400,
"detail": "One or more fields failed validation",
"errors": [
{
"field": "email",
"message": "Must be a valid email address",
"code": "INVALID_EMAIL"
}
]
}Content-Type: `application/problem+json`
For complete error patterns, see references/error-handling.md
| Scenario | Strategy | Why | |----------|----------|-----| | Small datasets (<1000) | Offset-based | Simple, page numbers | | Large datasets (>10K) | Cursor-based | Efficient, handles writes | | Sorted data | Keyset | Consistent results | | Real-time feeds | Cursor-based | Handles new items |
GET /users?limit=20&offset=40
Response includes: `limit`, `offset`, `total`, `currentPage`
GET /users?limit=20&cursor=eyJpZCI6MTIzfQ==
Cursor is base64-encoded JSON with position information. Response includes: `nextCursor`, `hasNext`
For implementation details, see references/pagination-patterns.md
X-RateLimit-Limit: 100 X-RateLimit-Remaining: 73 X-RateLimit-Reset: 1672531200
When exceeded (429):
Retry-After: 3600
For implementation patterns, see references/rate-limiting.md
Comprehensive UI/UX and Backend component design skills for AI-assisted development with Claude
Manage Linux systems covering systemd services, process management, filesystems, networking, performance tuning, and…
Data pipelines, feature stores, and embedding generation for AI/ML systems. Use when building RAG pipelines, ML feature serving,…
Strategic guidance for designing modern data platforms, covering storage paradigms (data lake, warehouse, lakehouse), modeling…
Design cloud network architectures with VPC patterns, subnet strategies, zero trust principles, and hybrid connectivity. Use when…
Design comprehensive security architectures using defense-in-depth, zero trust principles, threat modeling (STRIDE, PASTA), and…
Assembles component outputs from AI Design Components skills into unified, production-ready component systems with validated…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.