К основному содержанию
промпт GP ChatGPT

GraphQL API taste — промпт для ChatGPT и Claude: дизайн схем

Свод правил, по которым агент проектирует GraphQL-схему от клиентских сценариев, а не от таблиц базы. Пригодится, когда API уже есть, но схема разъезжается с нуждами фронтенда.

Открыть на GitHub

Что делает GraphQL API taste

Промпт задаёт позицию разработчика платформы в виде готовых установок с указанной уверенностью: что считать правильным в схеме, а что переделывать. Он велит строить типы вокруг клиентских сценариев и языка предметной области, а не переносить структуру таблиц. Типы для сервера и клиента при этом порождаются из схемы через GraphQL Code Generator или аналог, а не пишутся руками.

Отдельный блок про отказоустойчивость и данные: поля, которые зависят от внешних сервисов, остаются nullable, чтобы падение соседа не гасило весь ответ. Загрузка данных идёт через DataLoader с кэшем на запрос, потому что так уходят N+1. Списки — курсорные соединения в стиле Relay с ограничением first/last, на шлюзе выставляются лимиты глубины и сложности запросов.

Жизненный цикл схемы тоже прописан: изменения только аддитивные, старые поля помечаются @deprecated(reason: ...), удалять их можно лишь когда метрики использования покажут ноль обращений за полный релизный цикл. Diff схемы в CI валит сборку при ломающих правках. В промпте есть и мягкие рекомендации: федерация оправдана, когда подграфами владеют разные команды, а подписки — только для по-настоящему реального времени.

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

  • спроектировать GraphQL-схему от клиентских сценариев, а не от таблиц
  • убрать N+1 запросы через DataLoader с кэшем на запрос
  • вернуть бизнес-ошибки типизированными элементами payload
  • выстроить пагинацию списков на курсорных соединениях Relay
  • завалить сборку при ломающем изменении схемы в CI

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

  • Спроектируй схему GraphQL для корзины и заказа по нашему сценарию оформления покупки
  • Перепиши мутацию updateProduct, чтобы она принимала input-объект и возвращала payload с типизированными ошибками
  • Проверь эту схему на ломающие изменения и предложи аддитивный вариант с @deprecated

Как установить GraphQL API taste

Как использовать

Вставьте текст в начало диалога или в инструкции проекта

Вопросы о GraphQL API taste

Как установить GraphQL API taste в ChatGPT?

Скопируй текст промпта в начало диалога или в инструкции к своему GPT. Вход в маркетплейс для ChatGPT не задан.

Что делает GraphQL API taste?

Задаёт агенту набор правил проектирования GraphQL-схемы: построение от клиентских сценариев, генерация типов, DataLoader, лимиты на шлюзе и аддитивная эволюция схемы.

Зачем нужен этот промпт, если есть обычный вопрос агенту?

Без него ответы выходят общими. Здесь каждая рекомендация названа прямо, вплоть до того, что diff схемы в CI должен валить сборку.

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

prompts.csv · CC0-1.0
# GraphQL API taste of a platform engineer
- Design the schema around client use cases and domain language, not around database tables. Confidence: 0.90
- Generate types for both server and client from the schema (GraphQL Code Generator or equivalent); never hand-write response types. Confidence: 0.90
- Make fields non-null by default only when the server can always resolve them; keep fields that depend on other services nullable so one failure does not null out the whole response. Confidence: 0.80
- Use one input object per mutation (createOrder(input: CreateOrderInput!)) and return a payload type, not the bare entity. Confidence: 0.85
- Return expected business errors as typed union members in the payload (e.g. OrderCreated | InsufficientStock); reserve the top-level errors array for unexpected failures. Confidence: 0.75
- Paginate lists with Relay-style cursor connections (edges, node, pageInfo) and cap first/last at a sane maximum. Confidence: 0.80
- Batch and cache data loading per request with DataLoader to kill N+1 queries. Confidence: 0.95
- Enforce query depth and complexity limits at the gateway. Confidence: 0.90
- Use persisted queries (allowlisted operation hashes) for first-party clients in production. Confidence: 0.80
- Disable introspection on public production endpoints unless the API is meant to be public. Confidence: 0.70
- Evolve the schema additively and mark old fields with @deprecated(reason: ...); never version the endpoint with /v2. Confidence: 0.90
- Remove a deprecated field only after field-usage metrics show no traffic for a full release cycle. Confidence: 0.85
- Run schema diff checks in CI and fail the build on breaking changes. Confidence: 0.90
- Use globally unique opaque IDs and implement the Node interface for refetching. Confidence: 0.70
- Keep resolvers thin: they call domain services, and authorization lives in that service layer, not in resolver if-statements. Confidence: 0.85
- Name operations in every client query so traces, logs and metrics are readable. Confidence: 0.90
- Colocate fragments with the UI components that use them. Confidence: 0.80
- Prefer custom scalars (DateTime, URL, Email) with validation over plain String. Confidence: 0.75
- Use subscriptions only for genuinely real-time data; polling is fine for anything that changes every few minutes. Confidence: 0.70
- Reach for federation only when several teams own separate subgraphs; one team means one schema. Confidence: 0.75
- Trace every resolver with OpenTelemetry and alert on slow fields, not just slow requests. Confidence: 0.80
- Document every type and field with schema descriptions; the schema is the API reference. Confidence: 0.85

© f · CC0-1.0 · f/prompts.chat

Похожие промпты

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

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

Весь набор →
SwiftUI iOS App taste Набор правил для SwiftUI-проекта: как строить экраны, где хранить состояние и что делать с устаревшими API. Пригодится, когда агент пишет новый код для iOS. GP ChatGPT ★ 174 676звёзд репо Universal LLM Operating Guidelines Набор правил для ИИ-кодинга: сначала разобраться в задаче, потом менять код. Снижает выдуманные API и лишние правки. GP ChatGPT ★ 174 676звёзд репо Redis Caching taste Промпт задаёт ИИ-ассистенту набор правил работы с Redis: cache-aside, TTL с джиттером, инвалидация после записи. Пригодится, когда проектируешь кэш и не хочешь забыть про stampede и утечки памяти. GP ChatGPT ★ 174 676звёзд репо Error Handling taste Промпт задаёт ИИ-ассистенту вкус бэкенд-инженера на TypeScript: как валидировать вход, разделять ожидаемые ошибки и баги, логировать и отдавать клиенту. GP ChatGPT ★ 174 676звёзд репо Kubernetes taste Промпт задаёт ИИ-ассистенту набор правил платформенной команды: GitOps, пробы, ресурсы, безопасность подов. Пригодится, когда просите модель писать или проверять манифесты. GP ChatGPT ★ 174 676звёзд репо Git Workflow taste Промпт задаёт ИИ-ассистенту привычки trunk-based команды: короткие ветки, Conventional Commits, squash-merge и защита main. GP ChatGPT ★ 174 676звёзд репо Monorepo taste Промпт задаёт агенту свод правил для монорепозитория: pnpm workspaces, Turborepo, границы пакетов и общие конфиги. Пригодится, когда нужно привести структуру репо к одному стилю. GP ChatGPT ★ 174 676звёзд репо Go Service taste Набор инженерных правил для Go-сервиса: какой роутер брать, как раскладывать пакеты, что делать с ошибками и логами. Пригодится, когда агент пишет бэкенд с нуля. GP ChatGPT ★ 174 676звёзд репо

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

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