Tutorial GraphQL: Memulai dengan Spring for GraphQL

Ini tutorial GraphQL lengkap. Kita akan belajar konsep GraphQL dan cara memulai Spring for GraphQL.

Ardianto Nugroho

Ardianto Nugroho

15 April 2025

Tutorial GraphQL: Memulai dengan Spring for GraphQL

Dalam lanskap pengembangan web yang terus berkembang, GraphQL telah muncul sebagai alternatif yang kuat untuk REST API tradisional, menawarkan pendekatan yang lebih fleksibel dan efisien untuk pengambilan data. Jika Anda ingin menjelajahi teknologi kreatif ini dan mengintegrasikannya dengan mulus dengan Spring, Anda telah datang ke tempat yang tepat.

Selamat datang di tutorial GraphQL komprehensif kami, di mana kita akan memulai perjalanan untuk menguraikan konsep GraphQL dan memandu Anda melalui proses memulai dengan Spring untuk GraphQL.

Apa itu Spring GraphQL dan Fitur Utamanya

Spring GraphQL adalah ekstensi dari Spring Framework populer yang memberdayakan pengembang untuk membangun API berbasis GraphQL dengan mulus. Ini menggabungkan kekuatan kemudahan pengembangan Spring Boot dengan fleksibilitas dan efisiensi GraphQL, menjadikannya pilihan ideal untuk mengembangkan API modern.

Fitur utama Spring GraphQL meliputi:

Bagaimana Cara Menyiapkan Lingkungan Anda?

Sebelum Anda memulai perjalanan Anda dengan GraphQL dan Spring, pastikan pengaturan Anda sudah siap. Berikut adalah cara Anda dapat mempersiapkan lingkungan Anda untuk membangun proyek Spring Boot dengan GraphQL:

Prasyarat:

Membuat Proyek Spring Boot:

Spring Initializr: Buka start.spring.io, titik awal Anda untuk proyek Spring Boot.

Pertama, berikan detail pengaturan proyek seperti memberi nama proyek Anda, menentukan nama grup dalam format domain terbalik (misalnya, com.example), dan menetapkan nama paket untuk kode Java aplikasi Anda. Anda juga dapat menyertakan metadata seperti deskripsi dan versi jika diperlukan.

Kedua, tambahkan dependensi yang diperlukan. Di bagian Dependensi, pilih "Spring Web" untuk mengaktifkan dukungan untuk membuat aplikasi web dengan Spring. Demikian pula, centang "Spring GraphQL" untuk mengaktifkan fitur terkait GraphQL. Setelah Anda mengonfigurasi proyek Anda dan memilih dependensi, klik tombol "Generate" untuk melanjutkan.

Mengimpor Proyek Anda ke IDE Anda:

Pertama, ekstrak isi file ZIP untuk mengakses isinya. Kedua, buka Integrated Development Environment (IDE) Anda, seperti IntelliJ IDEA. Selanjutnya, impor proyek yang sebelumnya Anda ekstrak.

Itu saja! Lingkungan Anda sudah diatur, Anda telah membuat proyek Spring Boot, dan Anda telah memasang GraphQL. IDE Anda adalah taman bermain Anda untuk petualangan pengkodean.

Bagaimana Cara Menyiapkan Lapisan Data?

Di bagian ini, kita akan membuat contoh sederhana, seperti kedai kopi, untuk menunjukkan bagaimana GraphQL dapat meningkatkan pengambilan dan pengelolaan data.

Pengantar Contoh:

Bayangkan Anda sedang mengembangkan API untuk kedai kopi untuk mengelola menu dan pesanannya. Untuk mengilustrasikan ini, kita akan mendefinisikan model data dasar untuk item kopi dan pelanggan, dan menyiapkan layanan untuk menangani data ini.

Mendefinisikan Model Data Dasar:

Mari kita mulai dengan membuat dua model data sederhana: Coffee dan Size. Model-model ini akan diimplementasikan sebagai kelas Java, masing-masing dengan atribut yang mewakili informasi yang relevan.
Anda perlu membuat dua kelas dalam dua file yang berbeda dan Di setiap kelas, Anda perlu menambahkan konstruktor, getter, dan setter untuk atribut.

public class Coffee {
    private int id;
    private String name;
    private Size size;

    // Constructors, getters, setters
}

public class Size {
    private int id;
    private String name;

    // Constructors, getters, setters
}

Setelah membuat dan menambahkan kelas-kelas ini, Anda perlu memastikan bahwa mereka terletak di paket yang sesuai dalam proyek Spring Boot Anda. Struktur paket harus mencerminkan nama paket yang Anda berikan saat membuat proyek di Spring Initializr.

Berikut adalah cara Anda dapat menambahkan setter, getter, dan konstruktor untuk kelas Coffee.java.

package structure

Menyiapkan Manajemen Data:

Kita akan membuat kelas CoffeeService sederhana untuk berfungsi sebagai repositori data dalam memori dan mengelola data kopi. Untuk mendemonstrasikan, kita akan mengisi repositori ini dengan beberapa item kopi sampel.

import java.util.ArrayList;
import java.util.List;

@Component
public class CoffeeService {

	private final List<Coffee> coffees = new ArrayList<>();

	@PostConstruct
	public void init() {
    	Size smallSize = new Size(1, "Small");
    	Size mediumSize = new Size(2, "Medium");
    	Size largeSize = new Size(3, "Large");

    	coffees.add(new Coffee(1, "Espresso", smallSize));
    	coffees.add(new Coffee(2, "Latte", mediumSize));
    	coffees.add(new Coffee(3, "Cappuccino", largeSize));
	}

	public List<Coffee> getAllCoffees() {
    	return coffees;
	}

	public Coffee getCoffeeById(int id) {
    	return coffees.stream()
        	.filter(coffee -> coffee.getId() == id)
        	.findFirst()
        	.orElse(null);
	}
}

Kelas CoffeeService mengelola data terkait kopi, bertindak sebagai sistem penyimpanan dan pengambilan. Ini menginisialisasi data kopi sampel saat pembuatan, menawarkan metode untuk mengambil semua kopi atau yang spesifik berdasarkan ID. Abstraksi ini menyederhanakan akses dan manipulasi data, menyiapkan data untuk interaksi dalam skema GraphQL.

Data Management

Bagaimana Cara Membuat Skema GraphQL?

Buat file bernama schema.graphqls di folder src/main/resources dan definisikan skema GraphQL menggunakan Schema Definition Language (SDL).

type Query {
	getAllCoffees: [Coffee!]!
	getCoffeeById(id: Int!): Coffee
}

type Coffee {
	id: Int!
	name: String!
	size: Size!
}

type Size {
	id: Int!
	name: String!
}

Berikut adalah cara Anda dapat melakukannya.

Schemas GraphQL

Buat Pengambil Data:

Kode mendefinisikan kelas bernama CoffeeDataFetcher yang bertanggung jawab untuk mengambil data untuk kueri GraphQL. Ini dianotasi dengan @Component untuk dikelola oleh Spring. Pengambil getAllCoffees() mengambil daftar item kopi menggunakan metode coffeeService.getAllCoffees(). Pengambil getCoffeeById() mengekstrak ID dari argumen kueri dan menggunakannya untuk mengambil item kopi tertentu dari CoffeeService.

import graphql.schema.DataFetcher;
import graphql.schema.DataFetchingEnvironment;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class CoffeeDataFetcher {

	@Autowired
	private CoffeeService coffeeService;

	public DataFetcher<List<Coffee>> getAllCoffees() {
    	return environment -> coffeeService.getAllCoffees();
	}

	public DataFetcher<Coffee> getCoffeeById() {
    	return environment -> {
        	int id = environment.getArgument("id");
        	return coffeeService.getCoffeeById(id);
    	};
	}
}

Berikut adalah cara Anda dapat melakukannya.

Data Fetchers

Buat Pengontrol GraphQL:

Di Spring, pengontrol GraphQL menyediakan titik akhir untuk berinteraksi dengan skema GraphQL Anda. Pengontrol ini menangani kueri masuk dan mengembalikan data yang sesuai.

import graphql.GraphQL;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class GraphQLController {

	@Autowired
	private GraphQL graphQL;

	@PostMapping("/graphql")
	public Map<String, Object> executeQuery(@RequestBody String query) {
    	ExecutionResult executionResult = graphQL.execute(query);
    	return executionResult.toSpecification();
	}
}

Pengontrol ini akan menangani kueri GraphQL masuk dan berinteraksi dengan skema GraphQL Anda. Ini menyediakan titik akhir RESTful di /graphql yang menerima permintaan POST dengan kueri GraphQL di badan permintaan. Pengontrol kemudian menggunakan instance GraphQL untuk mengeksekusi kueri dan mengembalikan hasil eksekusi sebagai peta.

Spring GraphQL adalah kerangka kerja yang kuat yang memungkinkan pengembang untuk membangun API yang efisien menggunakan bahasa kueri GraphQL. Tidak seperti REST API tradisional, di mana beberapa titik akhir mendikte pengambilan data, GraphQL memberdayakan klien untuk menentukan dengan tepat data apa yang mereka butuhkan dalam satu permintaan, mengurangi pengambilan data berlebihan atau kekurangan data. Spring GraphQL memanfaatkan kekuatan ekosistem Spring, menggabungkan kesederhanaan Spring Boot dengan fleksibilitas GraphQL.

Prosesnya melibatkan pendefinisian model data Anda, membuat lapisan layanan untuk mengelola data, dan membuat skema dengan tipe dan kueri. Pendekatan berbasis skema Spring GraphQL memastikan desain yang jelas dan proses pengembangan yang terstruktur. Pengambilan data disederhanakan melalui resolver, dan pembaruan waktu nyata difasilitasi oleh langganan.

Alat Pengujian GraphQL:

GraphQL telah menjadi cara populer untuk membangun API, dan mengujinya sangat penting untuk memastikan mereka bekerja dengan benar. Alat pengujian membantu pengembang memeriksa apakah API GraphQL mereka berfungsi seperti yang diharapkan.

Salah satu alat ini adalah Apidog, yang menawarkan berbagai fitur untuk membuat pengujian API lebih mudah. Mari kita lihat apa yang dapat dilakukan Apidog dan menyebutkan beberapa alat pengujian berguna lainnya untuk GraphQL.

Apidog GraphQL

Apidog:

Apidog adalah toolkit serbaguna yang mencakup seluruh proses pembuatan API. Ini seperti pisau Swiss Army untuk API, membantu dengan desain, pengujian, dan banyak lagi. Berikut adalah apa yang ditawarkan Apidog:

Apa yang Ditawarkan Apidog untuk Pengujian GraphQL:

Apidog berfungsi dengan baik untuk menguji API GraphQL juga. Ia memiliki fitur seperti:

Kesimpulan

Saat API terus berkembang, perpaduan GraphQL, Spring GraphQL, dan alat seperti Apidog membentuk kembali cara API dibuat. Kombinasi ini memberi pengembang lebih banyak kontrol dan efisiensi, menghasilkan API yang kuat, mudah beradaptasi, dan berkinerja tinggi.

Explore more

Cara Menggunakan OpenAI Sora Secara Gratis: Panduan Lengkap untuk Microsoft Bing Video Creator

Cara Menggunakan OpenAI Sora Secara Gratis: Panduan Lengkap untuk Microsoft Bing Video Creator

💡Ingin alat Pengujian API hebat yang menghasilkan Dokumentasi API yang indah? Ingin platform Terintegrasi, All-in-One untuk Tim Pengembang Anda bekerja sama dengan produktivitas maksimum? Apidog memenuhi semua permintaan Anda, dan menggantikan Postman dengan harga yang jauh lebih terjangkau!tombol Model teks-ke-video mutakhir OpenAI, Sora, telah mengubah pembuatan konten yang dihasilkan AI dengan kemampuannya menciptakan video yang sangat realistis dari instruksi teks sederhana. Namun, biaya

3 June 2025

Apa itu Ollama? Cara Menginstal Ollama?

Apa itu Ollama? Cara Menginstal Ollama?

💡Ingin alat Pengujian API yang hebat yang menghasilkan Dokumentasi API yang indah? Ingin platform terintegrasi, All-in-One untuk Tim Pengembang Anda bekerja sama dengan produktivitas maksimum? Apidog memenuhi semua permintaan Anda, dan menggantikan Postman dengan harga yang jauh lebih terjangkau! button Lanskap kecerdasan buatan (AI) terus berkembang dengan kecepatan tinggi, dan Model Bahasa Besar (LLM) menjadi semakin kuat dan mudah diakses. Meskipun banyak orang berinteraksi dengan model

28 April 2025

Di Mana Unduh Swagger UI Bahasa Indonesia Gratis?

Di Mana Unduh Swagger UI Bahasa Indonesia Gratis?

Ingin Swagger UI dalam Bahasa Indonesia? Artikel ini menjelaskan mengapa tidak ada unduhan resmi gratis dan cara mengaktifkan terjemahan. Jelajahi fitur Swagger dan lihat mengapa Apidog adalah alternatif Swagger superior untuk desain, pengujian, dan dokumentasi API yang terintegrasi.

23 April 2025

Mengembangkan API dengan Apidog

Apidog adalah alat pengembangan API yang membantu Anda mengembangkan API dengan lebih mudah dan efisien.