# public-graphql-api-design

Скилл помогает спроектировать публичный GraphQL API для сторонних разработчиков. Он задаёт правила схемы, пагинацию через Relay, лимиты сложности и границы доверия в федерации.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 7600 установок · ★ 7
- Автор: Samuel Berthe
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/samber/developer-platform-skills/tree/HEAD/skills/public-graphql-api-design/SKILL.md
- Обновлён: 2026-10-24
- HTML: https://affpapa.org/nevibecode/skills/public-graphql-api-design

## Что делает

Скилл выстраивает архитектуру публичного графа по шагам. Сначала он проверяет, нужен ли вообще GraphQL вместо REST. Если клиентам действительно требуются разные срезы одних данных, процесс идёт дальше. На этом этапе формулируются соглашения об именовании, мутации под бизнес-действия и типы ошибок через объединения.

Для защиты от перегрузок рассчитываются потолки глубины запросов и пагинация по стандарту Relay. В распределённых графах скилл очерчивает границу доверия. Публичным остаётся только роутер федерации, а подграфы закрыты от внешнего мира. Запросы от собственных клиентов переводятся на сохранённые операции (persisted queries), а для сторонних действуют строгие лимиты.

Инструмент работает исключительно на уровне проектирования. Оценивать готовый REST API с его помощью нельзя — для этого предназначен отдельный навык public-api-design-review. Принятые архитектурные решения скилл советует фиксировать в файле `developer-platform-context.md`.

## Установка

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

1. **Через Skills CLI (Vercel)**
```bash
npx skills add samber/developer-platform-skills --skill public-graphql-api-design -a claude-code
```

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

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add samber/developer-platform-skills --skill public-graphql-api-design -a codex
```

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

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add samber/developer-platform-skills --skill public-graphql-api-design -a cursor
```

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

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install samber/developer-platform-skills public-graphql-api-design
```

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

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add samber/developer-platform-skills --skill public-graphql-api-design -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/samber/developer-platform-skills --path skills/public-graphql-api-design
```

### Windsurf (Devin Desktop)

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

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add samber/developer-platform-skills --skill public-graphql-api-design -a opencode
```

### Claude.ai

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

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

## Когда брать
- оценить целесообразность перехода с REST на GraphQL
- спроектировать мутации как бизнес-действия вместо CRUD
- настроить пагинацию по спецификации Relay с курсорами
- определить лимиты глубины и сложности сторонних запросов
- закрыть внутренние подграфы федерации за публичным роутером

## Примеры запросов агенту
- Спроектируй публичную GraphQL-схему для нашего сервиса подписок с учётом сторонних интеграций
- Помоги выбрать между REST и GraphQL для мобильного приложения и партнёрского API
- Настрой Relay-пагинацию и типизированные ошибки для публичного графа

## Похожие
- [api-design](https://affpapa.org/nevibecode/skills/agent-skills-team-api-design.md) — скилл · 387 установок
- [graphql-architect](https://affpapa.org/nevibecode/skills/graphql-architect.md) — скилл · 4000 установок
- [api-designer](https://affpapa.org/nevibecode/skills/api-designer.md) — скилл · 6500 установок
- [graphql-api-development](https://affpapa.org/nevibecode/skills/graphql-api-development.md) — скилл · 447 установок
- [implement-graphql-api](https://affpapa.org/nevibecode/commands/implement-graphql-api.md) — команда · 212 установок
- [rest-api-design](https://affpapa.org/nevibecode/skills/rest-api-design.md) — скилл · 2100 установок

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

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

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