我想在 Swagger-UI 上显示 HTTP 状态代码 200 的三个可能的响应示例。
这是我迄今为止尝试过的:
File struct
├─api
│ └─backend
│ ├─controller
| | |─controller //func is declare here
| |
│ ├─middleware
│ └─router
├─cmd
│ └─api
| |──main.go
|
├─docs
| |─docs.go
| |─swagger.json
| |─swagger.yaml
| |─Get signature records.md
...
# go.mod
github.com/swaggo/files v1.0.1
github.com/swaggo/gin-swagger v1.6.0
github.com/swaggo/swag v1.16.3
# CLI command to generate swagger file
swag init -g cmd/api/main.go -o ./docs
# Response model of API
package model
type GetDeliverySignatureResp struct {
SignatureTypeId int `json:"signatureTypeId"`
...
}
type GetDeliverySignatureRespQrcode struct {
SignatureTypeId int `json:"signatureTypeId" example:"1"`
...
}
type GetDeliverySignatureRespManual struct {
SignatureTypeId int `json:"signatureTypeId" example:"2"`
...
}
type GetDeliverySignatureRespNoContact struct {
SignatureTypeId int `json:"signatureTypeId" example:"3"`
...
}
# gin handler function
package controller
// ApiGetSignatureRecords
// @Summary Get signature records
// @Description 1.QrCode, 2.Manual, 3.NoContact
// @Tags Fleet
// @Param deliveryId path string true "deliveryId"
// @Param Token header string true "JWT"
// @Success 200 {object} model.GetDeliverySignatureRespQrcode "QR Code"
// @Success 200 {object} model.GetDeliverySignatureRespManual "Manual"
// @Success 200 {object} model.GetDeliverySignatureRespNoContact "No Contact"
// @Router /api/{deliveryId} [GET]
func (f *fleetController) ApiGetSignatureRecords(c *gin.Context) {
...
}
尽管做出了这些努力,我还是找不到使用外部文件的工作示例,并且我对注释、Markdown 和原始 JSON 的尝试也没有成功。
有人可以提供明确的说明或示例来实现这一目标吗?
如果可能的话,我更喜欢使用 JSON 文件或 Markdown 文件来定义和呈现不同的响应,而不是直接在代码中定义结构。