You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
21 lines
501 B
21 lines
501 B
package middleware |
|
|
|
import ( |
|
"context" |
|
) |
|
|
|
// Handler defines the handler invoked by Middleware. |
|
type Handler func(ctx context.Context, req interface{}) (interface{}, error) |
|
|
|
// Middleware is HTTP/gRPC transport middleware. |
|
type Middleware func(Handler) Handler |
|
|
|
// Chain returns a Middleware that specifies the chained handler for endpoint. |
|
func Chain(m ...Middleware) Middleware { |
|
return func(next Handler) Handler { |
|
for i := len(m) - 1; i >= 0; i-- { |
|
next = m[i](next) |
|
} |
|
return next |
|
} |
|
}
|
|
|