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 genBuat 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?