rover

安装量: 467
排名: #2214

安装

npx skills add https://github.com/apollographql/skills --skill rover

Apollo Rover CLI Guide

Rover is the official CLI for Apollo GraphOS. It helps you manage schemas, run composition locally, publish to GraphOS, and develop supergraphs on your local machine.

Quick Start Step 1: Install

macOS/Linux

curl -sSL https://rover.apollo.dev/nix/latest | sh

npm (cross-platform)

npm install -g @apollo/rover

Windows PowerShell

iwr 'https://rover.apollo.dev/win/latest' | iex

Step 2: Authenticate

Interactive authentication (opens browser)

rover config auth

Or set environment variable

export APOLLO_KEY=your-api-key

Step 3: Verify Installation rover --version rover config whoami

Core Commands Overview Command Description Use Case rover subgraph publish Publish subgraph schema to GraphOS CI/CD, schema updates rover subgraph check Validate schema changes PR checks, pre-deploy rover subgraph fetch Download subgraph schema Local development rover supergraph compose Compose supergraph locally Local testing rover dev Local supergraph development Development workflow rover graph publish Publish monograph schema Non-federated graphs Graph Reference Format

Most commands require a graph reference in the format:

@

Examples:

my-graph@production my-graph@staging my-graph@current (default variant)

Set as environment variable:

export APOLLO_GRAPH_REF=my-graph@production

Subgraph Workflow Publishing a Subgraph

From schema file

rover subgraph publish my-graph@production \ --name products \ --schema ./schema.graphql \ --routing-url https://products.example.com/graphql

From running server (introspection)

rover subgraph publish my-graph@production \ --name products \ --schema <(rover subgraph introspect http://localhost:4001/graphql) \ --routing-url https://products.example.com/graphql

Checking Schema Changes

Check against production traffic

rover subgraph check my-graph@production \ --name products \ --schema ./schema.graphql

Fetching Schema

Fetch from GraphOS

rover subgraph fetch my-graph@production --name products

Introspect running server

rover subgraph introspect http://localhost:4001/graphql

Supergraph Composition Local Composition

Create supergraph.yaml:

federation_version: =2.9.0 subgraphs: products: routing_url: http://localhost:4001/graphql schema: file: ./products/schema.graphql reviews: routing_url: http://localhost:4002/graphql schema: subgraph_url: http://localhost:4002/graphql

Compose:

rover supergraph compose --config supergraph.yaml > supergraph.graphql

Fetch Composed Supergraph rover supergraph fetch my-graph@production

Local Development with rover dev

Start a local Router with automatic schema composition:

Start with supergraph config

rover dev --supergraph-config supergraph.yaml

Start with GraphOS variant as base

rover dev --graph-ref my-graph@staging --supergraph-config local.yaml

With MCP Integration

Start with MCP server enabled

rover dev --supergraph-config supergraph.yaml --mcp

Reference Files

Detailed documentation for specific topics:

Subgraphs - fetch, publish, check, lint, introspect, delete Graphs - monograph commands (non-federated) Supergraphs - compose, fetch, config format Dev - rover dev for local development Configuration - install, auth, env vars, profiles Common Patterns CI/CD Pipeline

1. Check schema changes

rover subgraph check $APOLLO_GRAPH_REF \ --name $SUBGRAPH_NAME \ --schema ./schema.graphql

2. If check passes, publish

rover subgraph publish $APOLLO_GRAPH_REF \ --name $SUBGRAPH_NAME \ --schema ./schema.graphql \ --routing-url $ROUTING_URL

Schema Linting

Lint against GraphOS rules

rover subgraph lint --name products ./schema.graphql

Lint monograph

rover graph lint my-graph@production ./schema.graphql

Output Formats

JSON output for scripting

rover subgraph fetch my-graph@production --name products --format json

Plain output (default)

rover subgraph fetch my-graph@production --name products --format plain

Ground Rules ALWAYS authenticate before using GraphOS commands (rover config auth or APOLLO_KEY) ALWAYS use the correct graph reference format: graph-id@variant PREFER rover subgraph check before rover subgraph publish in CI/CD USE rover dev for local supergraph development instead of running Router manually NEVER commit APOLLO_KEY to version control; use environment variables USE --format json when parsing output programmatically SPECIFY federation_version explicitly in supergraph.yaml for reproducibility USE rover subgraph introspect to extract schemas from running services

返回排行榜