Files
apiServer-service/utils/request/response.go
T
2025-05-19 17:26:18 +08:00

65 lines
1.5 KiB
Go

package request
import (
"github.com/cloudwego/hertz/pkg/app"
"net/http"
)
// Response 通用响应结构
type Response struct {
Code int `json:"code"`
Message string `json:"message"`
Data interface{} `json:"data,omitempty"`
}
// 常见的响应代码
const (
SuccessCode = 200
ErrorCode = 500
BadRequestCode = 400
NotFoundCode = 404
UnauthorizedCode = 401
)
// Success 生成成功响应
func Success(c *app.RequestContext, data interface{}) {
c.JSON(http.StatusOK, Response{
Code: SuccessCode,
Message: "Success",
Data: data,
})
}
// Error 生成错误响应
func Error(c *app.RequestContext, code int, message string) {
c.JSON(code, Response{
Code: code,
Message: message,
})
}
// BadRequest 生成400响应
func BadRequest(c *app.RequestContext, message string) {
Error(c, BadRequestCode, message)
}
// NotFound 生成404响应
func NotFound(c *app.RequestContext, message string) {
Error(c, NotFoundCode, message)
}
// Unauthorized 生成401响应
func Unauthorized(c *app.RequestContext, message string) {
Error(c, UnauthorizedCode, message)
}
// FileResponse 生成文件响应
func FileResponse(c *app.RequestContext, filePath, fileName string) {
// 设置响应头,告诉浏览器这是一个下载文件的请求
c.Response.Header.Set("Content-Disposition", "attachment; filename="+fileName)
c.Response.Header.Set("Content-Type", "application/octet-stream")
// 使用 File() 直接发送文件
c.File(filePath)
}