如何在 go fiber Router 函数中声明 swagger 属性
How to declare swagger properties within go fiber Router function
我使用 fiber swagger 包生成 swagger 文档。我将我在他们的域内专门使用的路由分组。
当我在函数上方进行声明时它运行良好
// GetDevices godoc
// @Summary Get all Devices
// @ID get-all-devices
// @Description Get all Devices
// @Accept json
// @Produce json
// @Tags Devices End Points
// @Success 200 {object} models.Device
// @Failure 400 {object} utils.HTTPError
// @Failure 404 {object} utils.HTTPError
// @Failure 500 {object} utils.HTTPError
// @Router /api/devices/ [get]
func DeviceRoute(route fiber.Router) {
route.Get("", controllers.GetDevices)
route.Post("/create", services.CheckMiddleware, controllers.CreateDevice)
}
但是,我希望每条路线都有所有 swagger 声明,但是当我如下所示时,这不起作用
func DeviceRoute(route fiber.Router) {
// GetDevices godoc
// @Summary Get all Devices
// @ID get-all-devices
// @Description Get all Devices
// @ID get-item-by-int
// @Accept json
// @Produce json
// @Tags Devices End Points
// @Success 200 {object} models.Device
// @Failure 400 {object} utils.HTTPError
// @Failure 404 {object} utils.HTTPError
// @Failure 500 {object} utils.HTTPError
// @Router /api/devices/ [get]
route.Get("", controllers.GetDevices)
// Create Device godoc
// @Summary Create a device
// @ID create-device
// @Description Create a device
// @Accept json
// @Produce json
// @Tags Devices
// @param device body models.Device true "Device details"
// @Success 200 {object} Device
// @Failure 400 {object} utils.HTTPError
// @Failure 404 {object} utils.HTTPError
// @Failure 500 {object} utils.HTTPError
// @Router /api/devices/create [post]
route.Post("/create", services.CheckMiddleware, controllers.CreateDevice)
}
当我按照上述操作时,我得到 No operations defined in spec!
对于从使用 fiber.Router 的函数导出和访问的每条路由,我应该如何执行此操作?
注意:当我运行 swag init时,当定义在DeviceRoute函数
内时,json文件的输出如下
"info": {
"description": "Teleops IOT server API",
"title": "Teleops API",
"contact": {
"name": "API Support",
"email": "info@teleops.io"
},
"version": "2.0"
},
"host": "localhost:3000",
"basePath": "/",
"paths": {}
}
文档生成器不会查看函数内部,只会查看函数外部。
您最好重新构建您的路由以允许这样做,例如,有一个服务器类型定义了您的路由调用以执行其功能的方法。
我使用 fiber swagger 包生成 swagger 文档。我将我在他们的域内专门使用的路由分组。
当我在函数上方进行声明时它运行良好
// GetDevices godoc
// @Summary Get all Devices
// @ID get-all-devices
// @Description Get all Devices
// @Accept json
// @Produce json
// @Tags Devices End Points
// @Success 200 {object} models.Device
// @Failure 400 {object} utils.HTTPError
// @Failure 404 {object} utils.HTTPError
// @Failure 500 {object} utils.HTTPError
// @Router /api/devices/ [get]
func DeviceRoute(route fiber.Router) {
route.Get("", controllers.GetDevices)
route.Post("/create", services.CheckMiddleware, controllers.CreateDevice)
}
但是,我希望每条路线都有所有 swagger 声明,但是当我如下所示时,这不起作用
func DeviceRoute(route fiber.Router) {
// GetDevices godoc
// @Summary Get all Devices
// @ID get-all-devices
// @Description Get all Devices
// @ID get-item-by-int
// @Accept json
// @Produce json
// @Tags Devices End Points
// @Success 200 {object} models.Device
// @Failure 400 {object} utils.HTTPError
// @Failure 404 {object} utils.HTTPError
// @Failure 500 {object} utils.HTTPError
// @Router /api/devices/ [get]
route.Get("", controllers.GetDevices)
// Create Device godoc
// @Summary Create a device
// @ID create-device
// @Description Create a device
// @Accept json
// @Produce json
// @Tags Devices
// @param device body models.Device true "Device details"
// @Success 200 {object} Device
// @Failure 400 {object} utils.HTTPError
// @Failure 404 {object} utils.HTTPError
// @Failure 500 {object} utils.HTTPError
// @Router /api/devices/create [post]
route.Post("/create", services.CheckMiddleware, controllers.CreateDevice)
}
当我按照上述操作时,我得到 No operations defined in spec!
对于从使用 fiber.Router 的函数导出和访问的每条路由,我应该如何执行此操作?
注意:当我运行 swag init时,当定义在DeviceRoute函数
内时,json文件的输出如下"info": {
"description": "Teleops IOT server API",
"title": "Teleops API",
"contact": {
"name": "API Support",
"email": "info@teleops.io"
},
"version": "2.0"
},
"host": "localhost:3000",
"basePath": "/",
"paths": {}
}
文档生成器不会查看函数内部,只会查看函数外部。 您最好重新构建您的路由以允许这样做,例如,有一个服务器类型定义了您的路由调用以执行其功能的方法。