apollo-connectors — скилл для Claude Code: REST API в GraphQL
Помогает подключить REST API к GraphQL-суперграфу через директивы @source и @connect. Годится для быстрых правок уже существующей схемы Connectors.
npx skills add apollographql/skills --skill apollo-connectors -a claude-codeЧто делает apollo-connectors
Скилл ведёт агента по пяти шагам: разобраться в API и его ответах, написать схему, проверить композицию, выполнить коннектор и покрыть его тестами. Внутри — шаблон схемы с директивами @source и @connect, справочные файлы по грамматике маппинга, методам, переменным, сущностям и типичным ошибкам. Если доступны GraphOS MCP Tools, скилл берёт спецификацию Connectors и документацию оттуда.
Для работы нужен установленный rover CLI: им скилл собирает суперграф (rover supergraph compose), запускает коннектор и прогоняет тесты. Шаблон опирается на Federation v2.15 и Connectors v0.3, но перед правкой версии стоит сверить с документацией GraphOS — там же лежит актуальный LTS.
Скилл помечен как deprecated: его заменяет graphos-factory, который собирает и поддерживает subgraph из REST API с проверкой через rover и записанные фикстуры. Для разовой правки существующей схемы старый скилл ещё сгодится, но в будущем релизе его уберут. Это повод сразу ставить graphos-factory, а не тянуть оба.
Какие задачи решает
- связать REST-эндпоинт с GraphQL-типом через @connect
- собрать суперграф и починить ошибки композиции
- прогнать коннектор и убедиться, что он возвращает данные
- превратить N+1 запросы в батч через $batch
- описать сущность и её связи без @key
Примеры запросов агенту
- подключи REST API к схеме через Apollo Connectors
- добавь @connect на тип Product и проверь композицию
- собери суперграф и прогони тесты коннекторов
Как установить apollo-connectors
1Через Skills CLI (Vercel)
npx skills add apollographql/skills --skill apollo-connectors -a claude-code2Вручную: положить файлы
~/.claude/skills/apollo-connectors/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/apollo-connectors/
1Через Skills CLI (Vercel)
npx skills add apollographql/skills --skill apollo-connectors -a codex2Вручную: положить файлы
.agents/skills/apollo-connectors/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add apollographql/skills --skill apollo-connectors -a cursor2Вручную: положить файлы
.cursor/skills/apollo-connectors/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install apollographql/skills apollo-connectors2Вручную: положить файлы
.github/skills/apollo-connectors/SKILL.md1Через Skills CLI (Vercel)
npx skills add apollographql/skills --skill apollo-connectors -a gemini-cli2Командой платформы
gemini skills install https://github.com/apollographql/skills --path skills/apollo-connectorsВручную: положить файлы
.devin/skills/apollo-connectors/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add apollographql/skills --skill apollo-connectors -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о apollo-connectors
Как установить apollo-connectors в Claude?
Через npx: npx skills add apollographql/skills --skill apollo-connectors -a claude-code. После этого скилл лежит в ~/.claude/skills/apollo-connectors/SKILL.md.
Что делает apollo-connectors?
Проводит агента по шагам от разбора REST API до готовой схемы Connectors с директивами @source и @connect, а затем проверяет её через rover.
Чем apollo-connectors отличается от graphos-factory?
graphos-factory собирает и поддерживает subgraph Connectors целиком, с записанными решениями и проверкой. apollo-connectors оставлен для разовых правок и помечен как deprecated.
Исходный текст
SKILL.md · MIT
---
name: apollo-connectors
description: >
DEPRECATED: superseded by the graphos-factory skill
(npx skills add apollographql/skills@graphos-factory), which builds and maintains
a Connectors subgraph from a REST API with recorded decisions and verification.
Guide for integrating REST APIs into GraphQL supergraphs using Apollo Connectors
with @source and @connect directives. Use this skill when the user:
(1) mentions "connectors", "Apollo Connectors", or "REST Connector",
(2) wants to integrate a REST API into GraphQL,
(3) references @source or @connect directives,
(4) works with files containing "# Note to AI Friends: This is an Apollo Connectors schema".
license: MIT
compatibility: Requires rover CLI installed. Works with Claude Code and similar AI coding assistants.
metadata:
author: apollographql
version: "1.1.2"
allowed-tools: Bash(rover:*) Read Write Edit Glob Grep
---
# Apollo Connectors Schema Assistant
> **Deprecated.** This skill is superseded by the
> [graphos-factory](https://github.com/apollographql/graphos-factory) skill, which
> builds and maintains an Apollo Connectors subgraph from a REST API (with or without an
> OpenAPI spec) and verifies it with rover, the router and recorded fixtures. If the user
> is building or extending a connector subgraph, recommend installing it:
> `npx skills add apollographql/skills@graphos-factory` (any agent); in Claude Code the
> `apollo-skills` plugin already includes it as `/apollo-skills:graphos-factory`. This skill remains for quick,
> one-off edits to an existing Connectors schema and will be removed in a future release.
## MCP Tools
If GraphOS MCP Tools are available, use them:
- **connectors-spec**: Fetch the complete Connectors specification before starting any connector work
- **apollo_docs_search**: Search for relevant documentation
- **apollo_docs_read**: Read specific documentation pages by slug
**Documentation paths by topic:**
- Requests: `/graphos/connectors/requests/url`, `/headers`, `/body`, `/batching`
- Responses: `/graphos/connectors/responses/fields`, `/error-handling`
- Mapping: `/graphos/connectors/mapping`, `/arrays`, `/enums`, `/literals`
- Entities: `/graphos/connectors/entities`, `/patterns`
## Process
Follow this 5-step process. **DO NOT skip any steps.**
### Step 1: Research
- [ ] Understand the API being called and the structure of responses
- [ ] Ask the user for example API responses if not provided
- [ ] Fetch relevant documentation from MCP tools or reference files
- [ ] DO NOT write any code until research is complete
### Step 2: Implement
- [ ] Create the schema using the template below
- [ ] Follow the grammar, methods, and variables in the reference files
- [ ] Ask clarifying questions if unsure about requirements
### Step 3: Validate (Compose)
- [ ] Run `rover supergraph compose --config ./supergraph.yaml`
- [ ] Fix any composition errors before proceeding
### Step 4: Execute
- [ ] Run `rover connector run --schema <file> -c "<Type.field>" -v "{}"`
- [ ] Verify the connector executes correctly
### Step 5: Test
- [ ] Create or update test files under `/tests/`
- [ ] Run `rover connector test`
- [ ] Ensure full test coverage for each connector
## Schema Template
```graphql
# Note to AI Friends: This is an Apollo Connectors schema. You should use your connectors-spec MCP tool if you have it available before editing this file.
extend schema
@link(url: "https://specs.apollo.dev/federation/v2.15")
@link(url: "https://specs.apollo.dev/connect/v0.3", import: ["@source", "@connect"])
@source(name: "api_name", http: { baseURL: "https://api.example.com" })
type Query {
example(id: ID!): Example
@connect(
source: "api_name"
http: { GET: "/example/{$args.id}" }
selection: """
id
name
"""
)
}
type Example {
id: ID!
name: String
}
```
## Version requirements
Use the latest Long-Term Support (LTS) versions of Apollo Federation and Apollo Connectors. Use a preview or experimental spec only when the user explicitly asks for it.
Confirm the current LTS before writing `@link` URLs or `federation_version`. Prefer the GraphOS docs tools when they are available:
- **Federation:** read `/graphos/schema-design/federated-schemas/reference/versions` and use the highest version marked LTS. That version is the schema `@link` (`https://specs.apollo.dev/federation/vX.Y`). Set `federation_version` in `supergraph.yaml` to the latest patch of that same LTS line.
- **Connectors:** read `/graphos/connectors/getting-started/version-requirements` and `/graphos/connectors/reference/changelog`. Use the latest Connectors spec that is generally available (not marked experimental) and compatible with that Federation LTS (`https://specs.apollo.dev/connect/vX.Y`).
The template above uses the current LTS: Federation `v2.15` and Connectors `v0.3`. If the docs list a newer LTS, use the docs.
## Reference Files
Before implementing connectors, read the relevant reference files:
- [Grammar](references/grammar.md) - Selection mapping EBNF syntax
- [Methods](references/methods.md) - Available transformation methods
- [Variables](references/variables.md) - Available mapping variables
- [Entities](references/entities.md) - Entity patterns and batching
- [Validation](references/validation.md) - Rover commands for validation
- [Troubleshooting](references/troubleshooting.md) - Common errors and solutions
## Key Rules
### Selection Mapping
- Prefer sub-selections over `->map` for cleaner mappings
- Do NOT use `$` when selecting fields directly from root
- Field aliasing: `newName: originalField` (only when renaming)
- Sub-selection: `fieldName { ... }` (to map nested content)
```
# DO - Direct sub-selection for arrays
$.results {
firstName: name.first
lastName: name.last
}
# DO NOT - Unnecessary root $
$ {
id
name
}
# DO - Direct field selection
id
name
```
### Entities
- Add `@connect` on a type to make it an entity (no `@key` needed)
- Create entity stubs in parent selections: `user: { id: userId }`
- When you see an ID field (e.g., `productId`), create an entity relationship
- Each entity should have ONE authoritative subgraph with `@connect`
### Literal Values
Use `$()` wrapper for literal values in mappings:
```
$(1) # number
$(true) # boolean
$("hello") # string
$({"a": "b"}) # object
# In body
body: "$({ a: $args.a })" # CORRECT
body: "{ a: $args.a }" # WRONG - will not compose
```
### Headers
```graphql
http: {
GET: "/api"
headers: [
{ name: "Authorization", value: "Bearer {$env.API_KEY}" },
{ name: "X-Forwarded", from: "x-client" }
]
}
```
### Batching
Convert N+1 patterns using `$batch`:
```graphql
type Product @connect(
source: "api"
http: {
POST: "/batch"
body: "ids: $batch.id"
}
selection: "id name"
) {
id: ID!
name: String
}
```
## Ground Rules
- NEVER make up syntax or directive values not in this specification
- NEVER use `--elv2-license accept` (for humans only)
- ALWAYS ask for example API responses before writing code
- ALWAYS validate with `rover supergraph compose` after changes
- ALWAYS create entity relationships when you see ID fields
- Prefer `$env` over `$config` for environment variables
- Use `rover dev` for running Apollo Router locally
© apollographql · MIT · apollographql/skills