mirror of
https://github.com/infinite-iroha/touka.git
synced 2026-02-03 17:01:11 +08:00
Compare commits
No commits in common. "6b3f3335ab53578d122a9e999794dcb22160ba39" and "bb8b53b5c3bf333cbc05ae9a301cbbeb4cf8e32a" have entirely different histories.
6b3f3335ab
...
bb8b53b5c3
3 changed files with 11 additions and 26 deletions
19
context.go
19
context.go
|
|
@ -23,7 +23,7 @@ import (
|
||||||
"github.com/fenthope/reco"
|
"github.com/fenthope/reco"
|
||||||
"github.com/go-json-experiment/json"
|
"github.com/go-json-experiment/json"
|
||||||
|
|
||||||
"github.com/WJQSERVER-STUDIO/go-utils/iox"
|
"github.com/WJQSERVER-STUDIO/go-utils/copyb"
|
||||||
"github.com/WJQSERVER-STUDIO/httpc"
|
"github.com/WJQSERVER-STUDIO/httpc"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -271,13 +271,6 @@ func (c *Context) String(code int, format string, values ...interface{}) {
|
||||||
c.Writer.Write([]byte(fmt.Sprintf(format, values...)))
|
c.Writer.Write([]byte(fmt.Sprintf(format, values...)))
|
||||||
}
|
}
|
||||||
|
|
||||||
// Text 向响应写入无需格式化的string
|
|
||||||
func (c *Context) Text(code int, text string) {
|
|
||||||
c.Writer.Header().Set("Content-Type", "text/plain; charset=utf-8")
|
|
||||||
c.Writer.WriteHeader(code)
|
|
||||||
c.Writer.Write([]byte(text))
|
|
||||||
}
|
|
||||||
|
|
||||||
// JSON 向响应写入 JSON 数据
|
// JSON 向响应写入 JSON 数据
|
||||||
// 设置 Content-Type 为 application/json
|
// 设置 Content-Type 为 application/json
|
||||||
func (c *Context) JSON(code int, obj interface{}) {
|
func (c *Context) JSON(code int, obj interface{}) {
|
||||||
|
|
@ -431,7 +424,7 @@ func (c *Context) WriteStream(reader io.Reader) (written int64, err error) {
|
||||||
c.Writer.WriteHeader(http.StatusOK) // 默认 200 OK
|
c.Writer.WriteHeader(http.StatusOK) // 默认 200 OK
|
||||||
}
|
}
|
||||||
|
|
||||||
written, err = iox.Copy(c.Writer, reader) // 从 reader 读取并写入 ResponseWriter
|
written, err = copyb.Copy(c.Writer, reader) // 从 reader 读取并写入 ResponseWriter
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.AddError(fmt.Errorf("failed to write stream: %w", err))
|
c.AddError(fmt.Errorf("failed to write stream: %w", err))
|
||||||
}
|
}
|
||||||
|
|
@ -471,7 +464,7 @@ func (c *Context) GetReqBodyFull() ([]byte, error) {
|
||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
|
|
||||||
data, err := iox.ReadAll(limitBytesReader)
|
data, err := copyb.ReadAll(limitBytesReader)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.AddError(fmt.Errorf("failed to read request body: %w", err))
|
c.AddError(fmt.Errorf("failed to read request body: %w", err))
|
||||||
return nil, fmt.Errorf("failed to read request body: %w", err)
|
return nil, fmt.Errorf("failed to read request body: %w", err)
|
||||||
|
|
@ -505,7 +498,7 @@ func (c *Context) GetReqBodyBuffer() (*bytes.Buffer, error) {
|
||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
|
|
||||||
data, err := iox.ReadAll(limitBytesReader)
|
data, err := copyb.ReadAll(limitBytesReader)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.AddError(fmt.Errorf("failed to read request body: %w", err))
|
c.AddError(fmt.Errorf("failed to read request body: %w", err))
|
||||||
return nil, fmt.Errorf("failed to read request body: %w", err)
|
return nil, fmt.Errorf("failed to read request body: %w", err)
|
||||||
|
|
@ -678,7 +671,7 @@ func (c *Context) SetBodyStream(reader io.Reader, contentSize int) {
|
||||||
|
|
||||||
// 将 reader 的内容直接复制到 ResponseWriter
|
// 将 reader 的内容直接复制到 ResponseWriter
|
||||||
// ResponseWriter 实现了 io.Writer 接口
|
// ResponseWriter 实现了 io.Writer 接口
|
||||||
_, err := iox.Copy(c.Writer, reader)
|
_, err := copyb.Copy(c.Writer, reader)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.AddError(fmt.Errorf("failed to write stream: %w", err))
|
c.AddError(fmt.Errorf("failed to write stream: %w", err))
|
||||||
// 注意:这里可能无法设置错误状态码,因为头部可能已经发送
|
// 注意:这里可能无法设置错误状态码,因为头部可能已经发送
|
||||||
|
|
@ -737,7 +730,7 @@ func (c *Context) SetRespBodyFile(code int, filePath string) {
|
||||||
c.Writer.WriteHeader(code)
|
c.Writer.WriteHeader(code)
|
||||||
|
|
||||||
// 将文件内容写入响应体
|
// 将文件内容写入响应体
|
||||||
_, err = iox.Copy(c.Writer, file)
|
_, err = copyb.Copy(c.Writer, file)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.AddError(fmt.Errorf("failed to write file %s to response: %w", cleanPath, err))
|
c.AddError(fmt.Errorf("failed to write file %s to response: %w", cleanPath, err))
|
||||||
// 注意:这里可能无法设置错误状态码,因为头部可能已经发送
|
// 注意:这里可能无法设置错误状态码,因为头部可能已经发送
|
||||||
|
|
|
||||||
10
go.mod
10
go.mod
|
|
@ -3,14 +3,10 @@ module github.com/infinite-iroha/touka
|
||||||
go 1.24.4
|
go 1.24.4
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/WJQSERVER-STUDIO/go-utils/iox v0.0.2
|
github.com/WJQSERVER-STUDIO/go-utils/copyb v0.0.6
|
||||||
github.com/WJQSERVER-STUDIO/httpc v0.8.1
|
github.com/WJQSERVER-STUDIO/httpc v0.8.0
|
||||||
github.com/fenthope/reco v0.0.3
|
github.com/fenthope/reco v0.0.3
|
||||||
github.com/go-json-experiment/json v0.0.0-20250714165856-be8212f5270d
|
github.com/go-json-experiment/json v0.0.0-20250714165856-be8212f5270d
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require github.com/valyala/bytebufferpool v1.0.0 // indirect
|
||||||
github.com/WJQSERVER-STUDIO/go-utils/copyb v0.0.6 // indirect
|
|
||||||
github.com/valyala/bytebufferpool v1.0.0 // indirect
|
|
||||||
golang.org/x/net v0.42.0 // indirect
|
|
||||||
)
|
|
||||||
|
|
|
||||||
8
go.sum
8
go.sum
|
|
@ -1,14 +1,10 @@
|
||||||
github.com/WJQSERVER-STUDIO/go-utils/copyb v0.0.6 h1:/50VJYXd6jcu+p5BnEBDyiX0nAyGxas1W3DCnrYMxMY=
|
github.com/WJQSERVER-STUDIO/go-utils/copyb v0.0.6 h1:/50VJYXd6jcu+p5BnEBDyiX0nAyGxas1W3DCnrYMxMY=
|
||||||
github.com/WJQSERVER-STUDIO/go-utils/copyb v0.0.6/go.mod h1:FZ6XE+4TKy4MOfX1xWKe6Rwsg0ucYFCdNh1KLvyKTfc=
|
github.com/WJQSERVER-STUDIO/go-utils/copyb v0.0.6/go.mod h1:FZ6XE+4TKy4MOfX1xWKe6Rwsg0ucYFCdNh1KLvyKTfc=
|
||||||
github.com/WJQSERVER-STUDIO/go-utils/iox v0.0.2 h1:AiIHXP21LpK7pFfqUlUstgQEWzjbekZgxOuvVwiMfyM=
|
github.com/WJQSERVER-STUDIO/httpc v0.8.0 h1:G7inJ5EEsg5+BkeFiNIo/6+Mj7Ygiq85yMT3Ld7frJY=
|
||||||
github.com/WJQSERVER-STUDIO/go-utils/iox v0.0.2/go.mod h1:mCLqYU32bTmEE6dpj37MKKiZgz70Jh/xyK9vVbq6pok=
|
github.com/WJQSERVER-STUDIO/httpc v0.8.0/go.mod h1:50297rvgppmgPbZEtWzTWgkomoqPREkGy9T3Y/NqN7o=
|
||||||
github.com/WJQSERVER-STUDIO/httpc v0.8.1 h1:/eG8aYKL3WfQILIRbG+cbzQjPkNHEPTqfGUdQS5rtI4=
|
|
||||||
github.com/WJQSERVER-STUDIO/httpc v0.8.1/go.mod h1:mxXBf2hqbQGNHkVy/7wfU7Xi2s09MyZpbY2hyR+4uD4=
|
|
||||||
github.com/fenthope/reco v0.0.3 h1:RmnQ0D9a8PWtwOODawitTe4BztTnS9wYwrDbipISNq4=
|
github.com/fenthope/reco v0.0.3 h1:RmnQ0D9a8PWtwOODawitTe4BztTnS9wYwrDbipISNq4=
|
||||||
github.com/fenthope/reco v0.0.3/go.mod h1:mDkGLHte5udWTIcjQTxrABRcf56SSdxBOCLgrRDwI/Y=
|
github.com/fenthope/reco v0.0.3/go.mod h1:mDkGLHte5udWTIcjQTxrABRcf56SSdxBOCLgrRDwI/Y=
|
||||||
github.com/go-json-experiment/json v0.0.0-20250714165856-be8212f5270d h1:+d6m5Bjvv0/RJct1VcOw2P5bvBOGjENmxORJYnSYDow=
|
github.com/go-json-experiment/json v0.0.0-20250714165856-be8212f5270d h1:+d6m5Bjvv0/RJct1VcOw2P5bvBOGjENmxORJYnSYDow=
|
||||||
github.com/go-json-experiment/json v0.0.0-20250714165856-be8212f5270d/go.mod h1:TiCD2a1pcmjd7YnhGH0f/zKNcCD06B029pHhzV23c2M=
|
github.com/go-json-experiment/json v0.0.0-20250714165856-be8212f5270d/go.mod h1:TiCD2a1pcmjd7YnhGH0f/zKNcCD06B029pHhzV23c2M=
|
||||||
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
|
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
|
||||||
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
|
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
|
||||||
golang.org/x/net v0.42.0 h1:jzkYrhi3YQWD6MLBJcsklgQsoAcw89EcZbJw8Z614hs=
|
|
||||||
golang.org/x/net v0.42.0/go.mod h1:FF1RA5d3u7nAYA4z2TkclSCKh68eSXtiFwcWQpPXdt8=
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue