# Handler ## 概述
Go chassis以插件的形式支持在一次请求调用中,插入自己的处理逻辑。
## 实现
实现handler需要以下三个步骤:实现Handler接口,并根据其名称注册,最后在chassis.yaml中添加handler chain相关配置。其中[service_type] 可配置为Provider或Consumer,[chain_name]默认为default。
##### 注册处理逻辑
`go
RegisterHandler(name string, f func() Handler) error
`
##### 实现处理接口
```go type Handler interface {
}¶
##### 添加配置
- handler:
- chain:
- [service_type]:
[chain_name]: [your_handler_name]
## 示例
示例中注册的是名为fake-handler的处理链,其实现的Handle方法仅记录inv的endpoint信息。
```go package handler import (
“github.com/go-chassis/go-chassis/v2/core/handler” “github.com/go-chassis/go-chassis/v2/core/invocation” “log”
) const Name = “fake-handler” type FakeHandler struct{}
func init() { handler.RegisterHandler(Name, New) } func New() handler.Handler { return &FakeHandler{} } func (h *FakeHandler) Name() string { return Name }