# rest-api-design

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

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 586 установок · ★ 236
- Автор: secondsky
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/secondsky/claude-skills/tree/HEAD/plugins/rest-api-design/skills/rest-api-design/SKILL.md
- Обновлён: 2026-10-20
- HTML: https://affpapa.org/nevibecode/skills/secondsky-rest-api-design

## Что делает

Скилл описывает, как называть эндпоинты и какие методы к ним привязывать. Ресурсы — существительные во множественном числе, иерархия через слэш: `GET /api/users/123/orders`. Глаголы в URL вроде `/api/getUsers` или `/api/createUser` он считает ошибкой.

Внутри — таблицы методов и кодов состояния. `GET` и `PUT` идемпотентны, `POST` нет; успешное создание отдаёт 201, удаление — 204, ошибки валидации — 400, а лимит запросов — 429. Для ответов задан конверт с полями `data`, `meta` и `requestId`, для коллекций — блок `pagination` с `page`, `limit`, `total`, `totalPages` и ссылки `self` и `next`.

Отдельный раздел про query-параметры: фильтрация, сортировка через минус перед полем, постраничная выдача и выбор полей. Версию скилл советует держать в пути (`/api/v1/`), а описание API — в OpenAPI/Swagger. Готового генератора спецификаций тут нет, это набор соглашений, по которым агент пишет код и ревьюит чужие эндпоинты.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add secondsky/claude-skills --skill rest-api-design -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/rest-api-design/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/rest-api-design/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add secondsky/claude-skills --skill rest-api-design -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/rest-api-design/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add secondsky/claude-skills --skill rest-api-design -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/rest-api-design/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install secondsky/claude-skills rest-api-design
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/rest-api-design/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add secondsky/claude-skills --skill rest-api-design -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/secondsky/claude-skills --path plugins/rest-api-design/skills/rest-api-design
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/rest-api-design/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add secondsky/claude-skills --skill rest-api-design -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/secondsky/claude-skills/tree/HEAD/plugins/rest-api-design/skills/rest-api-design/SKILL.md

## Когда брать
- назвать эндпоинты существительными вместо глаголов
- выбрать код ответа для создания и удаления ресурса
- добавить пагинацию и ссылки в ответ коллекции
- договориться о едином конверте JSON для всех ручек
- описать фильтрацию, сортировку и выбор полей в query-параметрах

## Примеры запросов агенту
- спроектируй REST API для заказов: ресурсы, методы, коды ответов
- проверь мои эндпоинты на соответствие конвенциям REST
- добавь пагинацию и links в ответ списка пользователей

## Похожие
- [rest-api-design-patterns](https://affpapa.org/nevibecode/skills/rest-api-design-patterns.md) — скилл · 525 установок
- [agentmemory-rest-api](https://affpapa.org/nevibecode/skills/agentmemory-rest-api.md) — скилл · 10800 установок
- [api-design](https://affpapa.org/nevibecode/skills/api-design.md) — скилл · 5500 установок
- [api-design-patterns](https://affpapa.org/nevibecode/skills/api-design-patterns.md) — скилл · 929 установок
- [wp-rest-api](https://affpapa.org/nevibecode/skills/wp-rest-api.md) — скилл · 5900 установок
- [build-zoom-rest-api-app](https://affpapa.org/nevibecode/skills/anthropics-build-zoom-rest-api-app.md) — скилл · 2100 установок

## Другие версии с тем же именем
- [rest-api-design · aj-geddes](https://affpapa.org/nevibecode/skills/rest-api-design.md) — 2100 установок

Из того же набора: [secondsky/claude-skills](https://affpapa.org/nevibecode/by/secondsky/claude-skills.md) — 89 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
