gRPC Client

  • Dalam micro servoces, memanggil service lain adalah sebuah keniscayaan.

  • Dengan asumsi semua service internal didevelop dengan grpc, maka kita perlu membuat panggilan grpc client.

  • Misal kita akan memanggil service auth yang mempunyai file proto proto/auth/auth_service.proto

syntax = "proto3";
package skeleton;

option go_package = "skeleton/pb/auth;auth";

message LoginInput {
  string username = 1;
  string password = 2;
}

message TokenResponse {
  string token = 1;
}

service AuthService {
  rpc Login(LoginInput) returns (TokenResponse) {}
}
  • jalankan make gen

  • Buat lib grpc client lib/grpcclient/client.go

  • Buat file grpcconn/client_conn.go

  • Kode di atas memanggil address auth service yang disimpan dalam env.

  • Tambahkan env auth service address di file .env

  • Update file server.go untuk membuat koneksi grpc client dan menginject-nya ke routing agar diteruskan ke service yang sekiranya membutuhkan koneksi tersebut.

  • Ubah file route/route.go untuk menambahkan dependecy injection koneksi grpc client kepada repository yang membutuhkan.

  • Ubah file repository yang membutuhkan koneksi grpc client. misal file domain/ddrivers/repositories/repo.go

  • Sekarang repository sudah bisa melakukan call grpc ke auth service kapan pun membutuhkan, misal dengan kode berikut :

Last updated

Was this helpful?