Fullstack

Membuat GraphQL API dengan Node.js dan Apollo Server

  • Penulis : Fitri Hy
  • Tanggal : 2025-02-04

GraphQL adalah query language untuk API yang dikembangkan oleh Facebook. Dibandingkan dengan REST API, GraphQL lebih fleksibel karena memungkinkan klien meminta hanya data yang dibutuhkan. Dalam artikel ini, kita akan membahas bagaimana membuat GraphQL API menggunakan Node.js dan Apollo Server.

Persiapan

Sebelum memulai, pastikan Anda telah menginstal Node.js di sistem Anda. Jika belum, Anda dapat mengunduhnya dari nodejs.org.

Kemudian, buat proyek baru dan instal dependensi yang dibutuhkan:

mkdir graphql-api
cd graphql-api
npm init -y
npm install apollo-server graphql

Membuat Server Apollo

Setelah instalasi selesai, buat file index.js di dalam folder proyek dan tambahkan kode berikut:

const { ApolloServer, gql } = require('apollo-server');

// Definisi skema
const typeDefs = gql`
  type Query {
    hello: String
  }
`;

// Resolver untuk skema
const resolvers = {
  Query: {
    hello: () => 'Hello, GraphQL!',
  },
};

// Membuat instance Apollo Server
const server = new ApolloServer({ typeDefs, resolvers });

// Menjalankan server
server.listen().then(({ url }) => {
  console.log(`🚀 Server siap di ${url}`);
});

Kode di atas mendefinisikan skema sederhana dengan satu query hello yang mengembalikan string "Hello, GraphQL!".

Menjalankan Server

Sekarang, jalankan server dengan perintah berikut:

node index.js

Jika berhasil, Anda akan melihat output seperti berikut:

🚀 Server siap di http://localhost:4000/

Buka http://localhost:4000/ di browser Anda untuk mengakses GraphQL Playground dan menguji query berikut:

query {
  hello
}

Menambahkan Tipe Data dan Query

Sekarang, kita akan menambahkan tipe data Book dan query untuk mendapatkan daftar buku.

Baca juga: Implementasi Server-Sent Events (SSE) untuk Real-Time Updates tanpa WebSocket

Ubah index.js menjadi:

const { ApolloServer, gql } = require('apollo-server');

// Definisi skema
const typeDefs = gql`
  type Book {
    title: String
    author: String
  }

  type Query {
    books: [Book]
  }
`;

// Data contoh
const books = [
  { title: 'The Hobbit', author: 'J.R.R. Tolkien' },
  { title: 'Harry Potter', author: 'J.K. Rowling' },
];

// Resolver untuk skema
const resolvers = {
  Query: {
    books: () => books,
  },
};

// Membuat instance Apollo Server
const server = new ApolloServer({ typeDefs, resolvers });

// Menjalankan server
server.listen().then(({ url }) => {
  console.log(`🚀 Server siap di ${url}`);
});

Coba query berikut di GraphQL Playground:

query {
  books {
    title
    author
  }
}

Kesimpulan

Dalam tutorial ini, kita telah membahas cara membuat GraphQL API menggunakan Node.js dan Apollo Server. Kita telah mempelajari cara mendefinisikan skema, membuat resolvers, dan menjalankan server GraphQL. Dengan GraphQL, kita bisa mendapatkan data dengan lebih fleksibel dibandingkan dengan REST API.

Komentar:

Belum ada komentar, jadilah yang pertama.

Tinggalkan Komentar: