69 lines
1.5 KiB
Smarty
69 lines
1.5 KiB
Smarty
package v1
|
||
|
||
import (
|
||
"mime/multipart"
|
||
|
||
"{{.ModuleName}}/app/errorx"
|
||
"{{.ModuleName}}/app/services"
|
||
"{{.ModuleName}}/providers/jwt"
|
||
|
||
"github.com/gofiber/fiber/v3"
|
||
)
|
||
|
||
// @provider
|
||
type demo struct{}
|
||
|
||
type FooUploadReq struct {
|
||
Folder string `json:"folder" form:"folder"` // 上传到指定文件夹
|
||
}
|
||
|
||
type FooQuery struct {
|
||
Search string `query:"search"` // 搜索关键词
|
||
}
|
||
|
||
type FooHeader struct {
|
||
ContentType string `header:"Content-Type"` // 内容类型
|
||
}
|
||
|
||
// Foo
|
||
//
|
||
// @Summary Test
|
||
// @Description Test
|
||
// @Tags Test
|
||
// @Accept json
|
||
// @Produce json
|
||
//
|
||
// @Param id path int true "ID"
|
||
// @Param queryFilter query dto.Filter true "Filter"
|
||
// @Param pageFilter query request.PageQueryFilter true "Pager"
|
||
// @Param sortFilter query request.SortQueryFilter true "Sorter"
|
||
// @Success 200 {object} request.PageDataResponse{list=DataModel} "成功"
|
||
//
|
||
// @Router /v1/medias/:id [post]
|
||
// @Bind query query
|
||
// @Bind header header
|
||
// @Bind id path
|
||
// @Bind req body
|
||
// @Bind file file
|
||
// @Bind claim local
|
||
func (d *demo) Foo(
|
||
ctx fiber.Ctx,
|
||
id int,
|
||
query *FooQuery,
|
||
header *FooHeader,
|
||
claim *jwt.Claims,
|
||
file *multipart.FileHeader,
|
||
req *FooUploadReq,
|
||
) error {
|
||
_, err := services.Class.First(ctx)
|
||
if err != nil {
|
||
// 示例:在控制器层自定义错误消息/附加数据
|
||
appErr := errorx.Wrap(err).
|
||
WithMsg("获取班级失败").
|
||
WithData(fiber.Map{"route": "/v1/test"}).
|
||
WithParams("handler", "Test.Hello")
|
||
return appErr
|
||
}
|
||
return nil
|
||
}
|