Puteți face multe în 2 minute, cum ar fi floricele cu microunde, trimiterea unui mesaj text, mâncarea unui cupcake și conectarea unui server GraphQL.

Da. Dacă aveți un API RESTful Express.js vechi care se află în jur sau sunteți interesat să adoptați în mod gradual GraphQL, avem nevoie de doar 2 minute pentru a-l conecta cu un nou server GraphQL nou.

Gata? A stabilit. Merge!

Să presupunem că serverul dvs. arăta cam așa.

import express from 'express';
import { apiRouter } from './router';

const app = express();
const port = process.env.PORT || 5000;

// Existing routes for our Express.js app
app.use('/api/v1', apiRouter);

app.listen(port, () => console.log(`[App]: Listening on port ${port}`))

La baza proiectului dvs., npm install apollo-server-express ca dependență.

npm install apollo-server-express --save

Accesați locul unde este definită aplicația dvs. Express și importați-o ApolloServer și gql din apollo-server-express.

import { ApolloServer, gql } from 'apollo-server-express'

Apoi, creați o instanță a unui ApolloServer cu cel mai simplu posibil GraphQL definiții de tip și rezolvatori.

const server = new ApolloServer({
  typeDefs: gql`
    type Query {
      hello: String
    }
  `,
  resolvers: {
    Query: {
      hello: () => 'Hello world!',
    },
  }
})

În cele din urmă, utilizați ApolloServer‘s applyMiddleware metoda de a trece în serverul nostru Express.js.

server.applyMiddleware({ app })

Boom. Asta e!

Codul dvs. ar trebui să arate cam așa.

import express from 'express';
import { v1Router } from './api/v1';
import { ApolloServer, gql } from 'apollo-server-express'

const app = express();
const port = process.env.PORT || 5000;

const server = new ApolloServer({
  typeDefs: gql`
    type Query {
      hello: String
    }
  `,
  resolvers: {
    Query: {
      hello: () => 'Hello world!',
    },
  }
})

server.applyMiddleware({ app })

app.use('/api/v1', v1Router);

app.listen(port, () => {
  console.log(`[App]: Listening on port ${port}`)
})

Dacă navigați la localhost:5000/graphql, ar trebui să vă puteți vedea schema GraphQL în locul de joacă GraphQL.

Text alternativ

Notă: Dacă doriți să modificați adresa URL de la care se află punctul final GraphQL /graphql la altceva, puteți trece într-un path opțiune pentru server.applyMiddleware() cu adresa URL dorită, cum ar fi path: '/specialUrl'. Verificați documente pentru utilizarea API completă.

Cât de simplu a fost asta? Popcornul tău este terminat? ?

rezumat

Iată ce am făcut.

  1. Instalare apollo-server-express
  2. Creeaza o new ApolloServer
  3. Conectați-vă serverul GraphQL cu server.applyMiddleware

Personal îmi place foarte mult faptul că serverul Apollo este neintruziv și poate fi abordat în orice proiect ca o modalitate alternativă de comunicare între servicii și aplicații.

Unde să merg de aici

Dacă sunteți nou în Apollo și GraphQL, o modalitate excelentă de a învăța este să construiți ceva de fapt în viața reală. Din acest motiv, recomand cu tărie verificarea Tutorial Apollo Fullstack (puteți învăța și în TypeScript acum?).

Sunt Khalil Stemmler, un avocat dezvoltator la Apollo GraphQL. Învăț cele mai bune practici avansate TypeScript, GraphQL și Node.js pentru aplicații pe scară largă. Simțiți-vă liber să mă loviți Stare de nervozitate dacă aveți nevoie de ajutor cu ceva legat de Apollo, TypeScript sau arhitectură. Noroc ?