GraphQL - Pengaturan Lingkungan

Pada bab ini, kita akan belajar tentang pengaturan lingkungan untuk GraphQL. Untuk menjalankan contoh dalam tutorial ini, Anda memerlukan yang berikut ini -

  • Komputer yang menjalankan Linux, macOS, atau Windows.

  • Peramban web, sebaiknya versi terbaru Google Chrome.

  • Versi terbaru Node.js telah diinstal. Versi LTS terbaru direkomendasikan.

  • Visual Studio Code dengan ekstensi GraphQL untuk VSCode diinstal atau editor kode pilihan Anda.

Cara Membangun server GraphQL dengan Nodejs

Kami akan melalui pendekatan langkah-bijak terperinci untuk membangun server GraphQL dengan Nodejs seperti yang ditunjukkan di bawah ini -

Langkah 1 - Verifikasi Versi Node dan Npm

Setelah menginstal NodeJs, verifikasi versi node dan npm menggunakan perintah berikut di terminal -

C:\Users\Admin>node -v
v8.11.3

C:\Users\Admin>npm -v
5.6.0

Langkah 2 - Buat Folder Proyek dan Buka di VSCode

Folder akar proyek dapat diberi nama sebagai aplikasi uji.

Buka folder menggunakan editor kode studio visual dengan menggunakan petunjuk di bawah ini -

C:\Users\Admin>mkdir test-app
C:\Users\Admin>cd test-app
C:\Users\Admin\test-app>code.

Langkah 3 - Buat package.json dan Instal Dependensi

Buat file package.json yang akan berisi semua dependensi aplikasi server GraphQL.

{
   "name": "hello-world-server",
   "private": true,
   "scripts": {
      "start": "nodemon --ignore data/ server.js"
   },
   
   "dependencies": {
      "apollo-server-express": "^1.4.0",
      "body-parser": "^1.18.3",
      "cors": "^2.8.4",
      "express": "^4.16.3",
      "graphql": "^0.13.2",
      "graphql-tools": "^3.1.1"
   },
   
   "devDependencies": {
      "nodemon": "1.17.1"
   }
}

Instal dependensi dengan menggunakan perintah seperti yang diberikan di bawah ini -

C:\Users\Admin\test-app>npm install

Langkah 4 - Buat Database File Datar di Folder Data

Pada langkah ini, kami menggunakan file datar untuk menyimpan dan mengambil data. Buat data folder dan tambahkan dua filestudents.json dan colleges.json.

Berikut ini adalah colleges.json file -

[
   {
      "id": "col-101",
      "name": "AMU",
      "location": "Uttar Pradesh",
      "rating":5.0
   },
   
   {
      "id": "col-102",
      "name": "CUSAT",
      "location": "Kerala",
      "rating":4.5
   }
]

Berikut ini adalah students.json file -

[
   {
      "id": "S1001",
      "firstName":"Mohtashim",
      "lastName":"Mohammad",
      "email": "[email protected]",
      "password": "pass123",
      "collegeId": "col-102"
   },
   
   {
      "id": "S1002",
      "email": "[email protected]",
      "firstName":"Kannan",
      "lastName":"Sudhakaran",
      "password": "pass123",
      "collegeId": "col-101"
   },
   
   {
      "id": "S1003",
      "email": "[email protected]",
      "firstName":"Kiran",
      "lastName":"Panigrahi",
      "password": "pass123",
      "collegeId": "col-101"
   }
]

Langkah 5 - Buat Lapisan Akses Data

Kita perlu membuat datastore yang memuat konten folder data. Dalam hal ini, diperlukan variabel kumpulan, mahasiswa dan perguruan tinggi . Kapanpun aplikasi membutuhkan data, itu menggunakan variabel koleksi ini.

Buat file db.js dengan dalam folder proyek sebagai berikut -

const { DataStore } = require('notarealdb');

const store = new DataStore('./data');

module.exports = {
   students:store.collection('students'),
   colleges:store.collection('colleges')
};

Langkah 6 - Buat File Skema, schema.graphql

Buat file skema di folder proyek saat ini dan tambahkan konten berikut -

type Query  {
   test: String
}

Langkah 7 - Buat File Penyelesai, resolvers.js

Buat file resolver di folder proyek saat ini dan tambahkan konten berikut -

const Query = {
   test: () => 'Test Success, GraphQL server is up & running !!'
}
module.exports = {Query}

Langkah 8 - Buat Server.js dan Konfigurasi GraphQL

Buat file server dan konfigurasikan GraphQL sebagai berikut -

const bodyParser = require('body-parser');
const cors = require('cors');
const express = require('express');
const db = require('./db');

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

const fs = require('fs')
const typeDefs = fs.readFileSync('./schema.graphql',{encoding:'utf-8'})
const resolvers = require('./resolvers')

const {makeExecutableSchema} = require('graphql-tools')
const schema = makeExecutableSchema({typeDefs, resolvers})

app.use(cors(), bodyParser.json());

const  {graphiqlExpress,graphqlExpress} = require('apollo-server-express')
app.use('/graphql',graphqlExpress({schema}))
app.use('/graphiql',graphiqlExpress({endpointURL:'/graphql'}))

app.listen(
   port, () => console.info(
      `Server started on port ${port}`
   )
);

Langkah 9 - Jalankan Aplikasi dan Uji dengan GraphiQL

Verifikasi struktur folder project test-app sebagai berikut -

test-app /
   -->package.json
   -->db.js
   -->data
      students.json
      colleges.json
   -->resolvers.js
   -->schema.graphql
   -->server.js

Jalankan perintah npm start seperti yang diberikan di bawah ini -

C:\Users\Admin\test-app>npm start

Server berjalan di port 9000, jadi kita dapat menguji aplikasi menggunakan alat GraphiQL. Buka browser dan masukkan URL http: // localhost: 9000 / graphiql. Ketik kueri berikut di editor -

{
   Test 
}

Tanggapan dari server diberikan di bawah ini -

{
   "data": {
      "test": "Test Success, GraphQL server is running !!"
   }
}