api-design-patterns — скилл для Claude Code: правила REST API
Скилл с 38 правилами проектирования REST API: ресурсы, ошибки, безопасность, пагинация, версионирование. Пригодится, когда агент пишет или проверяет эндпоинты.
npx skills add AsyrafHussin/agent-skills --skill api-design-patterns -a claude-codeЧто делает api-design-patterns
Скилл разбит на 7 категорий по приоритету. Критичные — проектирование ресурсов (rest-), обработка ошибок (error-) и безопасность (sec-). Дальше идут пагинация с фильтрацией, версионирование, формат ответа и документация. У каждого правила свой префикс и отдельный файл в rules/, например rules/rest-http-methods.md или rules/error-consistent-format.md.
Внутри есть готовые образцы: формат ответа с ошибкой, структура пагинации с meta и links, заголовки X-RateLimit-*. Агент берёт их как ориентир, когда предлагает вам схему эндпоинта. Полный свод всех правил лежит в AGENTS.md.
Скилл не проверяет ваш код сам по себе — он задаёт агенту рамку, в которой тот рассуждает. Если в проекте уже принят другой стиль ответов или версионирование через заголовок, правила про URL-путь и конверт ответа будут спорить с ним. Тогда стоит сказать агенту, какой из подходов считать основным.
Какие задачи решает
- спроектировать эндпоинты так, чтобы в URL были существительные, а не глаголы
- собрать единый формат ответа с ошибкой и машинным кодом
- выбрать между cursor- и offset-пагинацией для конкретной выборки
- продумать стратегию версионирования и устаревания эндпоинтов
- проверить готовый API на дыры в авторизации и валидации входа
Примеры запросов агенту
- спроектируй REST API для заказов по правилам api-design-patterns
- проверь мои эндпоинты на соответствие REST best practices
- сделай единый формат ошибок с request_id для всех ручек
Как установить api-design-patterns
1Через Skills CLI (Vercel)
npx skills add AsyrafHussin/agent-skills --skill api-design-patterns -a claude-code2Вручную: положить файлы
~/.claude/skills/api-design-patterns/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/api-design-patterns/
1Через Skills CLI (Vercel)
npx skills add AsyrafHussin/agent-skills --skill api-design-patterns -a codex2Вручную: положить файлы
.agents/skills/api-design-patterns/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add AsyrafHussin/agent-skills --skill api-design-patterns -a cursor2Вручную: положить файлы
.cursor/skills/api-design-patterns/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install AsyrafHussin/agent-skills api-design-patterns2Вручную: положить файлы
.github/skills/api-design-patterns/SKILL.md1Через Skills CLI (Vercel)
npx skills add AsyrafHussin/agent-skills --skill api-design-patterns -a gemini-cli2Командой платформы
gemini skills install https://github.com/AsyrafHussin/agent-skills --path skills/api-design-patternsВручную: положить файлы
.devin/skills/api-design-patterns/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add AsyrafHussin/agent-skills --skill api-design-patterns -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о api-design-patterns
Как установить api-design-patterns в Claude?
Выполните npx skills add AsyrafHussin/agent-skills --skill api-design-patterns -a claude-code. После этого файл скилла окажется по пути ~/.claude/skills/api-design-patterns/SKILL.md.
Что делает api-design-patterns?
Даёт агенту набор правил по REST: именование ресурсов, HTTP-методы, коды статусов, формат ошибок, пагинация, версионирование, безопасность и документация. Всего 38 правил в 7 категориях.
Скилл навязывает версионирование через URL?
В нём есть правило ver-url-path про версию в пути вида /api/v1/, но рядом лежит и ver-header-based — версия через заголовок Accept. Выбор остаётся за вами.
Исходный текст
SKILL.md · MIT
---
name: api-design-patterns
description: RESTful API design, error handling, versioning, and best practices. Use when designing APIs, reviewing endpoints, implementing error responses, or setting up API structure. Triggers on "design API", "review API", "REST best practices", or "API patterns".
license: MIT
metadata:
author: agent-skills
version: "2.0.0"
---
# API Design Patterns
RESTful API design principles for building consistent, developer-friendly APIs. Contains 38 rules across 7 categories covering resource design, error handling, security, pagination, versioning, response format, and documentation.
## Metadata
- **Version:** 2.0.0
- **Rule Count:** 38 rules across 7 categories
- **License:** MIT
## When to Apply
Reference these guidelines when:
- Designing new API endpoints
- Reviewing existing API structure
- Implementing error handling and validation
- Setting up pagination, filtering, and sorting
- Planning API versioning strategy
- Configuring API security (auth, CORS, rate limiting)
- Writing API documentation (OpenAPI/Swagger)
## Rule Categories by Priority
| Priority | Category | Impact | Prefix |
|----------|----------|--------|--------|
| 1 | Resource Design | CRITICAL | `rest-` |
| 2 | Error Handling | CRITICAL | `error-` |
| 3 | Security | CRITICAL | `sec-` |
| 4 | Pagination & Filtering | HIGH | `page-`, `filter-`, `sort-` |
| 5 | Versioning | HIGH | `ver-` |
| 6 | Response Format | MEDIUM | `resp-` |
| 7 | Documentation | MEDIUM | `doc-` |
## Quick Reference
### 1. Resource Design (CRITICAL)
- `rest-nouns-not-verbs` - Use nouns for endpoints, not verbs
- `rest-plural-resources` - Use plural resource names
- `rest-http-methods` - Correct HTTP method usage (GET, POST, PUT, PATCH, DELETE)
- `rest-nested-resources` - Proper resource nesting (max 2 levels)
- `rest-status-codes` - Appropriate HTTP status codes
- `rest-idempotency` - Idempotent operations with idempotency keys
- `rest-hateoas` - Hypermedia links for discoverability
- `rest-resource-actions` - Non-CRUD actions as sub-resources
### 2. Error Handling (CRITICAL)
- `error-consistent-format` - Consistent error response structure
- `error-meaningful-messages` - Helpful, actionable error messages
- `error-validation-details` - Field-level validation errors
- `error-error-codes` - Machine-readable error codes
- `error-no-stack-traces` - Never expose stack traces in production
- `error-request-id` - Include request IDs for debugging
### 3. Security (CRITICAL)
- `sec-authentication` - Proper auth implementation (OAuth2/JWT)
- `sec-authorization` - Resource-level permissions (RBAC)
- `sec-rate-limiting` - Prevent abuse with rate limiting
- `sec-input-validation` - Validate and sanitize all input
- `sec-cors-config` - CORS configuration with whitelists
- `sec-https-only` - Enforce HTTPS for all traffic
- `sec-sensitive-data` - Protect passwords, tokens, PII
### 4. Pagination & Filtering (HIGH)
- `page-cursor-based` - Cursor pagination for large datasets
- `page-offset-based` - Offset pagination for simple cases
- `page-consistent-params` - Consistent parameter naming
- `page-metadata` - Include pagination metadata in responses
- `filter-query-params` - Filter via query parameters
- `sort-flexible` - Flexible sorting with `-` prefix for descending
### 5. Versioning (HIGH)
- `ver-url-path` - Version in URL path (/api/v1/)
- `ver-header-based` - Version via Accept header
- `ver-backward-compatible` - Maintain backward compatibility
- `ver-deprecation` - Deprecation strategy with Sunset header
### 6. Response Format (MEDIUM)
- `resp-consistent-structure` - Consistent response envelope
- `resp-json-conventions` - JSON naming conventions
- `resp-partial-responses` - Field selection (sparse fieldsets)
- `resp-compression` - Response compression (gzip/Brotli)
### 7. Documentation (MEDIUM)
- `doc-openapi` - OpenAPI/Swagger specification
- `doc-examples` - Request/response examples
- `doc-changelog` - API changelog
## Essential Guidelines
### Resource Naming
```
# ❌ Verbs in URLs
GET /getUsers
POST /createUser
# ✅ Nouns with HTTP methods
GET /users # List users
POST /users # Create user
GET /users/123 # Get user
PUT /users/123 # Update user (full)
PATCH /users/123 # Update user (partial)
DELETE /users/123 # Delete user
```
### Error Response Format
```json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "The request contains invalid data",
"details": [
{
"field": "email",
"code": "INVALID_FORMAT",
"message": "Please provide a valid email address"
}
],
"request_id": "req_abc123"
}
}
```
### Pagination
```json
{
"data": [...],
"meta": {
"current_page": 2,
"per_page": 20,
"total_pages": 10,
"total_count": 195
},
"links": {
"first": "/users?page=1&per_page=20",
"prev": "/users?page=1&per_page=20",
"next": "/users?page=3&per_page=20",
"last": "/users?page=10&per_page=20"
}
}
```
### Rate Limiting Headers
```
HTTP/1.1 200 OK
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 998
X-RateLimit-Reset: 1640995200
```
## How to Use
Read individual rule files for detailed explanations:
```
rules/rest-http-methods.md
rules/error-consistent-format.md
rules/page-cursor-based.md
rules/sec-authentication.md
rules/ver-url-path.md
rules/doc-openapi.md
```
## References
- [RESTful API Guidelines](https://restfulapi.net)
- [Zalando RESTful API Guidelines](https://zalando.github.io/restful-api-guidelines)
- [Microsoft API Guidelines](https://github.com/microsoft/api-guidelines)
- [Google API Design Guide](https://cloud.google.com/apis/design)
- [OpenAPI Specification](https://swagger.io/specification)
## Full Compiled Document
For the complete guide with all rules expanded: `AGENTS.md`
© agent-skills · MIT · AsyrafHussin/agent-skills