Apidog

Platform Pengembangan API Kolaboratif All-in-one

Desain API

Dokumentasi API

Debug API

Mocking API

Pengujian Otomatis API

Apa itu gRPC-Web? Semua yang Perlu Anda Ketahui

Pelajari gRPC-Web, manfaat, & cara memulainya. Panduan lengkap komunikasi efisien web app & layanan gRPC. Apidog permudah pengembangan API.

Ardianto Nugroho

Ardianto Nugroho

Updated on April 15, 2025

Hai! Jika Anda mengikuti tren terbaru dalam pengembangan web, Anda mungkin pernah mendengar istilah gRPC-Web. Mungkin Anda seorang pengembang yang bertanya-tanya apakah ini sesuatu yang harus Anda integrasikan ke dalam proyek Anda. Atau mungkin Anda hanya ingin tahu tentang apa yang sedang ramai dibicarakan. Apa pun itu, Anda datang ke tempat yang tepat. Mari selami dunia gRPC-Web, dan pada akhir posting ini, Anda akan memiliki pemahaman yang kuat tentang apa itu, mengapa berguna, dan bagaimana Anda dapat mulai menggunakannya.

Apa itu gRPC-Web?

Pertama-tama: apa sebenarnya gRPC-Web? Intinya, gRPC-Web adalah pustaka klien JavaScript yang memungkinkan aplikasi web untuk berkomunikasi dengan layanan gRPC. Ini memperluas fungsionalitas gRPC (Google Remote Procedure Call), yang merupakan kerangka kerja sumber terbuka yang menggunakan HTTP/2 untuk mengangkut pesan. gRPC dirancang untuk mempermudah pembangunan API yang skalabel dan efisien.

gRPC web

Ulasan Singkat tentang gRPC

Sebelum kita membahas lebih dalam tentang gRPC-Web, mari kita lakukan penyegaran singkat tentang gRPC itu sendiri. gRPC dikembangkan oleh Google dan banyak digunakan untuk komunikasi layanan mikro. Ini memanfaatkan HTTP/2, Protocol Buffers (protobuf), dan menyediakan fitur seperti otentikasi, penyeimbangan beban, dan banyak lagi. Dengan gRPC, Anda menentukan metode layanan dan jenis pesan Anda menggunakan protocol buffer, yang kemudian menghasilkan kode untuk klien dan server.

Mengapa gRPC-Web?

Jadi, mengapa kita membutuhkan gRPC-Web ketika kita sudah memiliki gRPC? Jawabannya terletak pada keterbatasan browser. Meskipun gRPC sangat baik untuk komunikasi server-ke-server, ia tidak berfungsi langsung dengan browser karena mereka tidak mendukung trailer HTTP/2, yang menjadi andalan gRPC. Di sinilah gRPC-Web berperan. Ia bertindak sebagai jembatan, memungkinkan layanan gRPC dikonsumsi oleh aplikasi web.

gRPC

Manfaat Utama gRPC-Web

Sekarang kita tahu apa itu gRPC-Web, mari kita jelajahi mengapa Anda mungkin ingin menggunakannya. Berikut adalah beberapa manfaat utamanya:

1. Performa

Salah satu fitur menonjol dari gRPC-Web adalah performanya. Berkat penggunaan HTTP/2 dan Protocol Buffers, gRPC-Web dapat menangani sejumlah besar permintaan secara efisien. Ini membuatnya ideal untuk aplikasi yang membutuhkan pertukaran data waktu nyata atau perlu mengelola beberapa koneksi simultan.

2. Kemudahan Penggunaan

Dengan gRPC-Web, Anda dapat memanfaatkan definisi protocol buffer yang sama untuk klien web dan layanan backend Anda. Ini berarti Anda dapat menjaga konsistensi di seluruh tumpukan aplikasi Anda dan mengurangi jumlah kode boilerplate yang perlu Anda tulis. Selain itu, dengan alat seperti Apidog, Anda dapat menyederhanakan proses pengembangan API Anda lebih jauh.

3. Skalabilitas

Karena gRPC-Web menggunakan HTTP/2, ia mendapat manfaat dari fitur seperti multipleksing, yang memungkinkan beberapa permintaan dikirim melalui satu koneksi. Ini membantu mengurangi overhead yang terkait dengan pembuatan dan pengelolaan beberapa koneksi, membuat aplikasi Anda lebih skalabel.

4. Interoperabilitas

gRPC-Web memungkinkan komunikasi tanpa batas antara aplikasi web dan layanan gRPC Anda. Ini berarti Anda dapat membangun aplikasi web modern yang dapat berinteraksi dengan arsitektur layanan mikro berbasis gRPC Anda yang ada tanpa perlu membuat API REST tambahan.

Memulai dengan gRPC-Web

Baiklah, cukup teori! Mari kita mulai praktik dan lihat bagaimana Anda dapat mulai menggunakan gRPC-Web dalam proyek Anda.

Prasyarat

Sebelum Anda mulai, pastikan Anda telah menginstal yang berikut:

  • Node.js
  • npm atau yarn
  • Protocol Buffers compiler (protoc)

Langkah 1: Definisikan Layanan Anda

Langkah pertama adalah mendefinisikan layanan gRPC Anda menggunakan protocol buffer. Buat file .proto dengan definisi layanan dan pesan Anda. Contoh:

syntax = "proto3";

package example;

service HelloService {
  rpc SayHello (HelloRequest) returns (HelloResponse);
}

message HelloRequest {
  string name = 1;
}

message HelloResponse {
  string message = 1;
}

Langkah 2: Hasilkan Kode Klien dan Server

Selanjutnya, gunakan Protocol Buffers compiler untuk menghasilkan kode klien dan server. Jalankan perintah berikut:

protoc -I=. --js_out=import_style=commonjs,binary:. --grpc-web_out=import_style=commonjs,mode=grpcwebtext:. example.proto

Perintah ini menghasilkan file JavaScript yang diperlukan untuk klien gRPC-Web Anda.

Langkah 3: Siapkan Server Anda

Sekarang, siapkan server gRPC untuk menangani permintaan. Berikut adalah contoh menggunakan Node.js:

const grpc = require('@grpc/grpc-js');
const protoLoader = require('@grpc/proto-loader');

const packageDefinition = protoLoader.loadSync('example.proto', {});
const exampleProto = grpc.loadPackageDefinition(packageDefinition).example;

function sayHello(call, callback) {
  callback(null, { message: `Hello, ${call.request.name}!` });
}

const server = new grpc.Server();
server.addService(exampleProto.HelloService.service, { sayHello: sayHello });
server.bindAsync('0.0.0.0:50051', grpc.ServerCredentials.createInsecure(), () => {
  server.start();
});

Langkah 4: Siapkan Klien Anda

Terakhir, siapkan klien web Anda untuk berkomunikasi dengan server gRPC. Berikut adalah contoh menggunakan React:

import React, { useState } from 'react';
import { HelloServiceClient } from './example_grpc_web_pb';
import { HelloRequest } from './example_pb';

const client = new HelloServiceClient('http://localhost:8080');

function App() {
  const [response, setResponse] = useState('');

  const sayHello = () => {
    const request = new HelloRequest();
    request.setName('World');

    client.sayHello(request, {}, (err, response) => {
      if (err) {
        console.error(err);
      } else {
        setResponse(response.getMessage());
      }
    });
  };

  return (
    <div>
      <button onClick={sayHello}>Say Hello</button>
      <p>{response}</p>
    </div>
  );
}

export default App;

Langkah 5: Siapkan Proxy

Karena gRPC-Web menggunakan HTTP/2, Anda perlu menyiapkan proxy untuk mengonversi permintaan. Anda dapat menggunakan proxy grpc-web untuk tujuan ini. Berikut cara melakukannya:

docker run -d -p 8080:8080 --network host \
  --name grpc-web-proxy \
  envoyproxy/envoy:v1.18.3 -c /etc/envoy-config.yaml

Buat file envoy-config.yaml dengan konten berikut:

static_resources:
  listeners:
    - address:
        socket_address:
          address: 0.0.0.0
          port_value: 8080
      filter_chains:
        - filters:
            - name: envoy.filters.network.http_connection_manager
              typed_config:
                "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
                codec_type: AUTO
                stat_prefix: ingress_http
                route_config:
                  name: local_route
                  virtual_hosts:
                    - name: local_service
                      domains: ["*"]
                      routes:
                        - match:
                            prefix: "/"
                          route:
                            cluster: grpc_service
                http_filters:
                  - name: envoy.filters.http.grpc_web
                  - name: envoy.filters.http.router
  clusters:
    - name: grpc_service
      connect_timeout: 0.25s
      type: logical_dns
      lb_policy: round_robin
      http2_protocol_options: {}
      load_assignment:
        cluster_name: grpc_service
        endpoints:
          - lb_endpoints:
              - endpoint:
                  address:
                    socket_address:
                      address: 127.0.0.1
                      port_value: 50051

Alat untuk Meningkatkan Pengembangan gRPC-Web Anda

Meskipun menyiapkan gRPC-Web cukup mudah, ada alat yang dapat membuat proses pengembangan menjadi lebih lancar. Salah satu alat tersebut adalah Apidog. Apidog adalah alat manajemen API yang membantu Anda mendesain, menguji, dan memantau API Anda dengan mudah. Ini mendukung gRPC, menjadikannya pilihan yang sangat baik untuk pengembangan gRPC-Web. Dengan Apidog, Anda dapat:

  • Mendesain API: Membuat dan mengelola definisi layanan gRPC Anda dengan UI yang intuitif.
  • Menguji API: Menguji layanan gRPC Anda dengan mudah menggunakan alat pengujian yang canggih.
  • Memantau API: Melacak kinerja API Anda dan memastikan semuanya berjalan dengan lancar.
Apidog Official website

Menggunakan Apidog bersama dengan gRPC-Web dapat secara signifikan menyederhanakan alur kerja pengembangan Anda dan memastikan Anda membangun API yang kuat dan andal.

Panduan Langkah demi Langkah untuk Menguji gRPC-Web dengan Apidog

Langkah 1: Siapkan Apidog

Buat Proyek Baru: Buka Apidog, buat proyek baru dengan mengklik tombol "+ New project". Beri nama dan deskripsi pada proyek Anda untuk membantu menjaga semuanya tetap teratur.

Create gRPC project on Apidog

Langkah 2: Definisikan Layanan gRPC Anda

Impor File .proto Anda: Anda dapat mengimpor file .proto Anda yang ada atau mendefinisikan layanan gRPC Anda secara manual. Untuk mengimpor, klik tombol "Import" dan pilih file .proto Anda. Apidog akan secara otomatis mengurai file dan menghasilkan definisi API yang diperlukan.

Import Your .proto File

Langkah 3: Konfigurasikan Endpoint gRPC-Web Anda

Siapkan Endpoint: Setelah mengimpor file .proto Anda, konfigurasikan endpoint gRPC-Web Anda dengan menentukan URL server gRPC-Web Anda. Misalnya, jika server Anda berjalan di http://localhost:8080, masukkan URL ini dalam konfigurasi endpoint.

Configure Your gRPC-Web Endpoint

Apidog akan mencantumkan semua metode layanan yang ditentukan dalam file .proto Anda. Anda dapat memilih metode yang ingin Anda uji dan menambahkannya ke API Anda.

Kasus Penggunaan Dunia Nyata untuk gRPC-Web

Untuk memberi Anda gambaran yang lebih baik tentang di mana gRPC-Web bersinar, berikut adalah beberapa kasus penggunaan dunia nyata:

1. Aplikasi Waktu Nyata

Aplikasi yang membutuhkan pembaruan data waktu nyata, seperti aplikasi obrolan atau dasbor langsung, dapat memperoleh manfaat besar dari gRPC-Web. Protokol komunikasinya yang efisien memastikan latensi rendah dan kinerja tinggi.

2. Arsitektur Layanan Mikro

Jika Anda bekerja dengan arsitektur layanan mikro, gRPC-Web dapat membantu aplikasi web Anda berkomunikasi dengan mulus dengan layanan backend. Ini memungkinkan Anda untuk mempertahankan protokol komunikasi yang konsisten di seluruh tumpukan Anda.

3. Aplikasi Intensif Data

Aplikasi yang perlu menangani volume data yang besar, seperti layanan streaming video atau platform analitik data besar, dapat memanfaatkan serialisasi data dan kemampuan transportasi gRPC-Web yang efisien.

4. Platform IoT

Platform IoT seringkali membutuhkan komunikasi yang efisien dan skalabel antara perangkat dan server. gRPC-Web menyediakan solusi yang kuat untuk mengelola interaksi ini.

Kesimpulan

Dan itulah dia—ikhtisar komprehensif tentang gRPC-Web. Kita telah membahas apa itu, mengapa berguna, dan bagaimana Anda dapat mulai menggunakannya dalam proyek Anda. Dengan manfaat kinerja, kemudahan penggunaan, dan skalabilitasnya, gRPC-Web adalah alat yang ampuh untuk pengembangan web modern. Apakah Anda sedang membangun aplikasi waktu nyata, arsitektur layanan mikro, atau platform intensif data, gRPC-Web siap membantu Anda. Dan dengan alat seperti Apidog, Anda dapat menyederhanakan proses pengembangan API Anda dan memastikan layanan Anda berjalan dengan lancar.

Jadi, tunggu apa lagi? Selami gRPC-Web dan mulailah membangun generasi aplikasi web berikutnya!

Apa itu Ollama? Cara Menginstal Ollama?Sudut Pandang

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

Di Mana Unduh Swagger UI Bahasa Indonesia Gratis?Sudut Pandang

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.

Oliver Kingsley

April 23, 2025

Di Mana Mengunduh Postman Bahasa Indonesia Gratis?Sudut Pandang

Di Mana Mengunduh Postman Bahasa Indonesia Gratis?

Bisakah Anda mengunduh Postman Bahasa Indonesia gratis? Meskipun Postman tidak memiliki dukungan Bahasa Indonesia native, ada solusi lain. Jelajahi ini & temukan Apidog, alternatif Postman terpadu yang kuat untuk menyederhanakan alur kerja API Anda, apa pun bahasanya.

Oliver Kingsley

April 22, 2025