Goravel 升級 v1.4,使微服務間請求更加簡單一體化。No bb, show the code.
Goravel 是一個功能完備、具有良好擴充套件能力的 Golang Web 應用程式框架。風格與 Laravel 保持一致,讓 PHPer 不用學習新的框架,也可以愉快的玩轉 Golang!
服務端
定義介面
func (r *UserController) GetUser(ctx context.Context, req *grpcuser.UserRequest) (*grpcuser.UserResponse, error) { return &grpcuser.UserResponse{Name: "Goravel"}, nil }
執行服務
facades.Grpc.Run(facades.Config.GetString("grpc.host"))
客戶端
配置服務
facades.Config.Add("grpc", map[string]interface{}{ "clients": map[string]any{ "user": map[string]any{ "host": config.Env("GRPC_USER_HOST", ""), "interceptors": []string{"trace"}, }, }, })
發起請求
func (r *ServiceImpl) GetUser(ctx context.Context, userID uint64) (*grpcuser.User, error) { // 建立客戶端例項 client, _ := facades.Grpc.Client(ctx, "user") // 註冊服務 userServiceClient := grpcuser.NewUserServiceClient(client) // 呼叫介面 resp, _ := userServiceClient.GetUser(ctx, &grpcuser.UserRequest{ UserID: userID, }) return resp.Data, nil }
Over, 歡迎 Star、PR、Issues!
本作品採用《CC 協議》,轉載必須註明作者和本文連結