3.【go-kit教程】go-kit集成gin启动服务

环境准备

  • gokit工具集:go get github.com/go-kit/kit
  • http请求路由组件:go get github.com/gorilla/mux
  • gin框架安装:go get -u github.com/gin-gonic/gin

go-kit集成gin

示例在 《go-kit启动http服务》代码示例上更改。

  • 由于其灵活的设计, 通过使用 go-kit,开发者可以快速地构建出符合分布式系统要求的微服务应用,同时也能够方便地对已有的应用进行升级和维护。所以我们集成gin也是很方便的,只需要稍微改动transport层即可

    /**
     * @date: 2023/2/18
     * @desc: 传输层 http/rpc...
     */
    
    package endpoints
    
    import (
    	"context"
    	"encoding/json"
    	"github.com/gin-gonic/gin"
    	"github.com/go-kit/kit/endpoint"
    	httptransport "github.com/go-kit/kit/transport/http"
    	"kit-gin-demo/endpoints"
    	"net/http"
    )
    
    func decodeFooRequest(_ context.Context, r *http.Request) (interface{
         }, error) {
         
    	var req endpoints.FooRequest
    	if err := json.NewDecoder(r.Body).Decode(&req); err != nil {
         
    		return nil, err
    	}
    	return req, nil
    }
    
    func decodeBarRequest(_ context.Context, r *http.Request) (interface{
         }, error) {
         
    	var req endpoints.BarRequest
    	if err := json.NewDecoder(r.Body).Decode(&req); err != nil {
         
    		return nil, err
    	}
    	return req, nil
    }
    
    func encodeResponse(_ context.Context, w http.ResponseWriter, response interface{
         }) error {
         
    	return json.NewEncoder(w).Encode(response)
    }
    
    // MakeHttpHandler make http handler use mux
    func MakeHttpHandler(ctx context.Context, fooEndpoint, barEndpoint endpoint.Endpoint) http.Handler {
         
    	//r := mux.NewRouter()
    	r := gin.Default()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值