К основному содержанию
скилл CX Codex

api-designer · zhaono1 — скилл для Claude Code: проектирование REST и GraphQL

Помогает спроектировать новый API или разобрать существующий: ресурсы, методы, коды ответов, пагинация, версии. Пригодится, когда контракт ещё не зафиксирован.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add zhaono1/agent-playbook --skill api-designer -a claude-code
Открыть на GitHub

Что делает api-designer

Скилл включается, когда вы просите агента спроектировать API, проверить чужой дизайн, доработать имеющийся или собрать спецификацию. Внутри — набор правил: ресурсные URL вместо глаголов, таблица HTTP-методов с признаками safe и idempotent, разбор кодов от 200 до 500, пагинация через page и page_size, фильтры и сортировка вида ?status=active&sort=-created_at,name.

Для GraphQL свои требования: ненулевые поля по умолчанию, курсорная пагинация через Connection и PageInfo, payload-типы у мутаций, описания у всех типов. Версионирование скилл советует начинать с v1 и держать обратную совместимость, а схемы авторизации разбирает по трём вариантам — JWT, API-ключ, OAuth 2.0.

Два скрипта на Python делают рутину: python3 scripts/generate_api.py --name <resource-name> --output api-design.md собирает каркас, python3 scripts/validate_api.py --input api-design.md проверяет готовый файл. Оба лежат в репозитории, так что без локального Python они не запустятся. В allowed-tools прописан доступ к WebFetch и WebSearch — агент может подтянуть внешние материалы по REST и GraphQL.

Какие задачи решает

  • спроектировать ресурсные URL вместо глагольных эндпоинтов
  • подобрать корректный код ответа под каждую ситуацию
  • добавить пагинацию и сортировку в листинг
  • описать схему GraphQL с курсорами и payload-типами
  • проверить готовую спецификацию скриптом

Примеры запросов агенту

  • Спроектируй REST API для заказов: список, создание, обновление, удаление
  • Проверь мою схему GraphQL и скажи, где нарушены best practices
  • Сгенерируй каркас API для ресурса invoices в api-design.md

Как установить api-designer

1Через Skills CLI (Vercel)

npx skills add zhaono1/agent-playbook --skill api-designer -a claude-code

2Вручную: положить файлы

~/.claude/skills/api-designer/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/api-designer/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о api-designer

Как установить api-designer в Claude?

Выполните npx skills add zhaono1/agent-playbook --skill api-designer -a claude-code. После этого файл скилла окажется по пути ~/.claude/skills/api-designer/SKILL.md.

Что делает api-designer?

Помогает проектировать и проверять REST и GraphQL API: правила именования, HTTP-методы, коды ответов, пагинация, версионирование, авторизация. Плюс два скрипта для генерации и валидации спецификации.

Какие инструменты доступны скиллу?

В allowed-tools перечислены Read, Write, Edit, Bash, Grep, Glob, WebFetch и WebSearch. То есть агент может читать файлы проекта, запускать скрипты и искать материалы в сети.

Исходный текст

SKILL.md · MIT
---
name: api-designer
description: REST and GraphQL API architect for designing robust, scalable APIs. Use when designing new APIs or improving existing ones.
allowed-tools: Read, Write, Edit, Bash, Grep, Glob, WebFetch, WebSearch
metadata:
  hooks:
    after_complete:
      - trigger: self-improving-agent
        mode: background
        reason: "Learn from API design patterns"
      - trigger: session-logger
        mode: auto
        reason: "Log API design activity"
---

# API Designer

Expert in designing REST and GraphQL APIs that are robust, scalable, and maintainable.

## When This Skill Activates

Activates when you:
- Design a new API
- Review API design
- Improve existing API
- Create API specifications

## REST API Design Principles

### 1. Resource-Oriented Design

**Good:**
```
GET    /users          # List users
POST   /users          # Create user
GET    /users/{id}     # Get specific user
PATCH  /users/{id}     # Update user
DELETE /users/{id}     # Delete user
```

**Avoid:**
```
POST   /getUsers       # Should be GET
POST   /users/create  # Redundant
GET    /users/get/{id} # Redundant
```

### 2. HTTP Methods

| Method | Safe | Idempotent | Purpose |
|--------|------|------------|---------|
| GET | ✓ | ✓ | Read resource |
| POST | ✗ | ✗ | Create resource |
| PUT | ✗ | ✓ | Replace resource |
| PATCH | ✗ | ✗ | Update resource |
| DELETE | ✗ | ✓ | Delete resource |

### 3. Status Codes

| Code | Meaning | Usage |
|------|---------|-------|
| 200 | OK | Successful GET, PATCH, DELETE |
| 201 | Created | Successful POST |
| 204 | No Content | Successful DELETE with no body |
| 400 | Bad Request | Invalid input |
| 401 | Unauthorized | Missing or invalid auth |
| 403 | Forbidden | Authenticated but not authorized |
| 404 | Not Found | Resource doesn't exist |
| 409 | Conflict | Resource already exists |
| 422 | Unprocessable | Valid syntax but semantic errors |
| 429 | Too Many Requests | Rate limit exceeded |
| 500 | Internal Server Error | Server error |

### 4. Naming Conventions

- **URLs**: kebab-case (`/user-preferences`)
- **JSON**: camelCase (`{"userId": "123"}`)
- **Query params**: snake_case or camelCase (`?page_size=10`)

### 5. Pagination

```http
GET /users?page=1&page_size=20

Response:
{
  "data": [...],
  "pagination": {
    "page": 1,
    "page_size": 20,
    "total": 100,
    "total_pages": 5
  }
}
```

### 6. Filtering and Sorting

```http
GET /users?status=active&sort=-created_at,name

# -created_at = descending
# name = ascending
```

## GraphQL API Design

### Schema Design

```graphql
type Query {
  user(id: ID!): User
  users(limit: Int, offset: Int): UserConnection!
}

type Mutation {
  createUser(input: CreateUserInput!): CreateUserPayload!
  updateUser(id: ID!, input: UpdateUserInput!): UpdateUserPayload!
}

type User {
  id: ID!
  email: String!
  profile: Profile
  posts(first: Int, after: String): PostConnection!
}

type UserConnection {
  edges: [UserEdge!]!
  pageInfo: PageInfo!
}

type UserEdge {
  node: User!
  cursor: String!
}

type PageInfo {
  hasNextPage: Boolean!
  hasPreviousPage: Boolean!
  startCursor: String
  endCursor: String
}
```

### Best Practices

- **Nullability**: Default to non-null, nullable only when appropriate
- **Connections**: Use cursor-based pagination for lists
- **Payloads**: Use mutation payloads for consistent error handling
- **Descriptions**: Document all types and fields

## API Versioning

### Approaches

**URL Versioning** (Recommended):
```
/api/v1/users
/api/v2/users
```

**Header Versioning**:
```
GET /users
Accept: application/vnd.myapi.v2+json
```

### Versioning Guidelines

- Start with v1
- Maintain backwards compatibility when possible
- Deprecate old versions with notice
- Document breaking changes

## Authentication & Authorization

### Authentication Methods

1. **JWT Bearer Token**
```http
Authorization: Bearer <token>
```

2. **API Key**
```http
X-API-Key: <key>
```

3. **OAuth 2.0**
```http
Authorization: Bearer <access_token>
```

### Authorization

- Use roles/permissions
- Document required permissions per endpoint
- Return 403 for authorization failures

## Rate Limiting

```http
HTTP/1.1 200 OK
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1631234567
```

**Recommended limits:**
- Public APIs: 100-1000 requests/hour
- Authenticated APIs: 1000-10000 requests/hour
- Webhooks: 10-100 requests/minute

## Documentation Requirements

- All endpoints documented
- Request/response examples
- Authentication requirements
- Error response formats
- Rate limits
- SDK examples (if available)

## Scripts

Generate API scaffold:
```bash
python3 scripts/generate_api.py --name <resource-name> --output api-design.md
```

Validate API design:
```bash
python3 scripts/validate_api.py --input api-design.md
```

## References

- `references/rest-patterns.md` - REST design patterns
- `references/graphql-patterns.md` - GraphQL design patterns
- [REST API Tutorial](https://restfulapi.net/)
- [GraphQL Best Practices](https://graphql.org/learn/best-practices/)

© zhaono1 · MIT · zhaono1/agent-playbook

Похожие скиллы

Всё по теме «Бэкенд и API» →

Сначала — api-designer от других авторов.

api-designer https://github.com/Jeffallan Скилл для архитектуры REST и GraphQL API с генерацией OpenAPI 3.1 спецификаций. Помогает моделировать ресурсы, планировать версионирование и задавать стандарты обработки ошибок. CX Codex +1 6 500установок api-integration-surface-strategy Samuel Berthe Помогает решить, какие поверхности интеграции платформа отдаёт наружу — REST, GraphQL, gRPC, вебхуки, SDK, MCP — и в каком порядке их строить. CX Codex +1 8 000установок api-testing-patterns proffesor-for-testing Скилл с готовыми паттернами тестирования REST и GraphQL API: контракты, авторизация, идемпотентность, гонки. Пригодится, когда пишете тесты или выбираете стратегию. CX Codex +1 605установок api-and-interface-design addyosmani Помогает проектировать API и границы модулей так, чтобы их было проще использовать и менять. Подходит для REST, GraphQL и публичных интерфейсов. CX Codex +1 62 600установок api-design-principles Seth Hobson Скилл помогает проектировать и проверять REST- и GraphQL API. Пригодится при подготовке спецификации, пересмотре существующего API или согласовании стандартов команды. CX Codex 30 348установок api-rate-limit-policy Samuel Berthe Помогает спроектировать лимиты публичного API: тарифы, всплески, заголовки, ответы 429. Пригодится, когда интеграторы узнают о потолках, только упираясь в них. CX Codex +1 8 000установок api-testing kindlmann Скилл для автотестов REST и GraphQL: проверяет формат ответов, коды статусов, заголовки, авторизацию и время отклика. Пригодится, когда фронтенд ломается от незаметного изменения схемы. CX Codex +1 1 300установок

Из того же набора18

refactoring-specialist Скилл ведёт агента по шагам рефакторинга: находит запахи кода, предлагает технику и следит, чтобы тесты остались зелёными. CX Codex +1 747установок debugger Скилл ведёт агента по методике отладки: воспроизвести баг, сузить область, найти причину, починить и закрыть регрессионным тестом. CX Codex +1 745установок session-logger Сохраняет короткую сводку разговора с агентом: что решили, какие файлы трогали, что осталось открытым. Пригодится, когда нужно вернуться к работе позже. CX Codex +1 743установок api-documenter Скилл для описания REST и GraphQL API в формате OpenAPI/Swagger. Пригодится, когда нужно превратить россыпь эндпоинтов в читаемую спецификацию. CX Codex +1 717установок documentation-engineer Скилл для написания технической документации: README, описания API, комментарии к коду и архитектурные заметки. Пригодится, когда проект оброс кодом, а доки к нему нет. CX Codex +1 711установок prd-implementation-precheck Скилл прогоняет PRD или спецификацию фичи по чек-листу до начала реализации: находит пробелы в граничных случаях и блокеры, а потом пишет код. CX Codex +1 707установок long-task-coordinator Ведёт многосессионную работу через файл состояния: восстановление после сбоев, явные статусы и честные отчёты о прогрессе. CX Codex +1 680установок create-pr Скилл проводит агента по шагам создания pull request и следит, чтобы английский и китайский README оставались синхронными. Пригодится, когда каталог скиллов меняется и его надо отразить в документации. CX Codex +1 666установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой