RoundTripper is an interface representing the ability to execute a single HTTP transaction, obtaining the Response for a given Request.
对于http客户端,可以使用不同的实现了 RoundTripper
接口的Transport
实现来配置它的行为
RoundTripper
有点像 http.Client
的中间件
接口定义
type RoundTripper interface {
RoundTrip(*Request) (*Response, error)
}
需要实现RoundTrip函数
type SomeClient struct {}
func (s *SomeClient) RoundTrip(r *http.Request)(*Response, error) {
//Something comes here...Maybe
}
场景
原文: https://lanre.wtf/blog/2017/0...
-
缓存 responses,比如 app需要访问 Github api,获取 trending repos,这个数据变动不频繁,假设30分钟变动一次,你显然不希望每次都要点击api都要来请求Github api,解决这个问题的方法是实现这样的