Fermer

octobre 4, 2018

Construire un service API simple avec Express et GraphQL –


Cet article a été publié à l'origine sur le blog des développeurs d'Okta . Merci de soutenir les partenaires qui rendent SitePoint possible.

GraphQL est devenu une alternative extrêmement populaire aux API REST. La flexibilité que vous procure l'utilisation de GraphQL permet aux développeurs d'obtenir facilement les informations dont ils ont besoin pour une application et seulement les informations dont ils ont besoin pour cette partie de l'application. Cela vous donne l’impression d’une API très personnalisée et peut vous aider à réduire la bande passante.

Dans ce tutoriel, je vais vous montrer comment écrire une API GraphQL personnalisée à l’aide de Node et Express. Je vais également vous montrer comment sécuriser des parties de l'API tout en rendant d'autres parties ouvertes au public.

Création de l'API GraphQL avec Express

Pour créer l'API, commencez par créer un nouveau dossier, puis en créant un . ] package.json pour gérer vos dépendances. Vous devrez également installer quelques dépendances pour pouvoir utiliser GraphQL avec Express:

 mkdir graphql-express
cd graphql-express
npm init -y
npm install express@2.8.4 express-graphql@0.6.12 graphql@14.0.2 graphql-tag@2.9.2 cors@2.8.4

Créez maintenant un fichier nommé index.js . Ce sera votre principal point d’entrée:

 const express = require ('express')
const cors = require ('cors')
const graphqlHTTP = require ('express-graphql')
const gql = require ('graphql-tag')
const {buildASTSchema} = require ('graphql')

const app = express ()
app.use (cors ())

const schéma = buildASTSchema (gql`
  tapez Query {
    bonjour: String
  }
`)

const rootValue = {
  bonjour: () => 'Bonjour, le monde'
}

app.use ('/ graphql', graphqlHTTP ({schema, rootValue}))

const port = process.env.PORT || 4000
app.listen (port)
console.log (`Exécution d'un serveur d'API GraphQL sur localhost: $ {port} / graphql`)

C'est aussi simple qu'un serveur GraphQL. Tout cela ne fait que renvoyer «Bonjour à tous» lorsque vous interrogez «bonjour», mais c’est un début. Pour le tester, exécutez le nœud . puis ouvrez un navigateur dans un autre onglet pour accéder au GraphQL Playground . Une fois là-bas, entrez http: // localhost: 4000 / graphql pour accéder à votre serveur GraphQL.

 graphql playground - entrez l'URL du point final

Le terrain de jeu GraphQL vous aidera à explorer votre schéma et test des requêtes. Il crée même automatiquement de la documentation pour vous.

 graphql playground - hello world schema

Essayez d’interroger hello à l’aide de la requête suivante:

 query {
  Bonjour
}

 hello world

Améliorez votre expérience de développeur GraphQL

Voici quelques astuces rapides pour améliorer votre expérience de développement:

1. Installez un linter pour attraper les bogues dans votre éditeur. Cela vous aidera à garder votre style cohérent et à détecter les bogues faciles à éviter.

Pour installer StandardJS tapez npm install --save-dev standard@12.0.1 . La plupart des éditeurs pourront vous montrer des avertissements et des erreurs lors de la frappe.

Vous pouvez également modifier les scripts de votre package.json pour que vous puissiez exécuter le linter à tout moment avec npm test :

 "scripts": {
  "test": "standard"
},

2. Redémarrez automatiquement le serveur lorsque vous apportez des modifications.

Installez nodemon avec npm install --save-dev nodemon@1.18.4




Source link