如何:编写中间件组件

学习如何开发中间件组件

Dapr 允许通过链接一系列中间件组件来定义自定义处理管道。 在本指南中,您将了解如何创建一个中间件组件。 要了解如何配置现有中间件组件,请参阅 配置中间件组件

编写自定义HTTP中间件

Dapr 中间件在 Dapr 中包装标准的 Go net/http 处理函数。

您的中间件需要实现一个中间件接口,该接口定义了一个GetHandler方法,该方法返回一个http.Handler回调和一个error

  1. type Middleware interface {
  2. GetHandler(metadata middleware.Metadata) (func(next http.Handler) http.Handler, error)
  3. }

处理程序接收一个 next 回调,应该被调用以继续处理请求。

您的 handler 实现可以包含任何入站(inbound)逻辑和出站(outbound)逻辑或两者兼有:

  1. func (m *customMiddleware) GetHandler(metadata middleware.Metadata) (func(next http.Handler) http.Handler, error) {
  2. var err error
  3. return func(next http.Handler) http.Handler {
  4. return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
  5. // Inbound logic
  6. // ...
  7. // Call the next handler
  8. next.ServeHTTP(w, r)
  9. // Outbound logic
  10. // ...
  11. }
  12. }, err
  13. }

相关链接