如何:编写中间件组件
学习如何开发中间件组件
Dapr 允许通过将一系列中间件组件链接在一起来定义自定义处理管道。在本指南中,您将学习如何创建一个中间件组件。要了解如何配置已有的中间件组件,请参阅配置中间件组件
编写自定义 HTTP 中间件
Dapr 中的 HTTP 中间件是对标准 Go net/http 处理函数的封装。
您的中间件需要实现一个中间件接口,该接口定义了一个 GetHandler 方法,该方法返回一个 http.Handler 回调函数和一个 error:
type Middleware interface {
GetHandler(metadata middleware.Metadata) (func(next http.Handler) http.Handler, error)
}
处理器接收一个 next
回调函数,该函数应被调用以继续处理请求。
您的处理器实现可以包括入站逻辑、出站逻辑,或同时包括两者:
func (m *customMiddleware) GetHandler(metadata middleware.Metadata) (func(next http.Handler) http.Handler, error) {
var err error
return func(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
// 入站逻辑
// ...
// 调用下一个处理器
next.ServeHTTP(w, r)
// 出站逻辑
// ...
}
}, err
}
相关链接
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.