mirror of
https://github.com/infinite-iroha/touka.git
synced 2026-06-13 15:47:38 +08:00
feat: httpc 集成改进,自动关联请求 Context
- 新增 contextHTTPClient 包装器,自动关联请求 Context - 新增 Context.HTTPC() 方法返回 contextHTTPClient - Client() 标记为 Deprecated - 添加 GetHTTPC() go:fix inline 兼容函数 当请求被取消时,出站 HTTP 请求也会自动取消。
This commit is contained in:
parent
10033f4a17
commit
f2295c3084
3 changed files with 86 additions and 7 deletions
18
context.go
18
context.go
|
|
@ -865,11 +865,22 @@ func (c *Context) GetErrors() []error {
|
|||
}
|
||||
|
||||
// Client 返回 Engine 提供的 HTTPClient
|
||||
// 方便在请求处理函数中进行出站 HTTP 请求
|
||||
// 方便在请求处理函数中进行出站 HTTP请求
|
||||
//
|
||||
// Deprecated: 使用 HTTPC() 替代,新方法会自动关联请求 Context
|
||||
func (c *Context) Client() *httpc.Client {
|
||||
return c.HTTPClient
|
||||
}
|
||||
|
||||
// HTTPC 返回自动关联请求 Context 的 HTTP 客户端
|
||||
// 当请求被取消时,通过此客户端发起的出站请求也会自动取消
|
||||
func (c *Context) HTTPC() *contextHTTPClient {
|
||||
return &contextHTTPClient{
|
||||
client: c.engine.HTTPClient,
|
||||
ctx: c.ctx,
|
||||
}
|
||||
}
|
||||
|
||||
// Context() 返回请求的上下文,用于取消操作
|
||||
// 这是 Go 标准库的 `context.Context`,用于请求的取消和超时管理
|
||||
func (c *Context) Context() context.Context {
|
||||
|
|
@ -1130,11 +1141,6 @@ func (c *Context) GetProtocol() string {
|
|||
return c.Request.Proto
|
||||
}
|
||||
|
||||
// GetHTTPC 获取框架自带传递的httpc
|
||||
func (c *Context) GetHTTPC() *httpc.Client {
|
||||
return c.HTTPClient
|
||||
}
|
||||
|
||||
// GetLogger 获取engine的Logger接口
|
||||
func (c *Context) GetLogger() Logger {
|
||||
return c.engine.logger
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue