Middleware
示例
- 请求的处理时间函数:
package middleware
import ( "context" "fmt" "github.com/cloudwego/kitex/pkg/endpoint" "time")// ApiRequestTimingMiddleware 请求的处理时间func ApiRequestTimingMiddleware(next endpoint.Endpoint) endpoint.Endpoint { return func(ctx context.Context, req, res any) error { begin := time.Now() err := next(ctx, req, res) fmt.Printf("请求的处理时间: %v\n", time.Since(begin)) return err }}使用
server
main.go
opts = append(opts, server.WithServiceAddr(addr),server.WithMiddleware(middleware.ApiRequestTimingMiddleware))Client
cli, err3 := demoservice.NewClient( "demo", client.WithMiddleware(middleware.ApiRequestTimingMiddleware), client.WithResolver(r), client.WithMetaHandler(transmeta.ClientHTTP2Handler), client.WithTransportProtocol(transport.GRPC), client.WithClientBasicInfo(&rpcinfo.EndpointBasicInfo{ ServiceName: "demo", }), )