如何在go fiber Router函数中声明swagger属性

nlejzf6q  于 2023-09-28  发布在  Go
关注(0)|答案(1)|浏览(140)

我使用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)

}

当我这样做的时候,我得到规范中没有定义任何操作!
对于从使用光纤路由器的函数中导出和访问的每个路由,我应该如何执行此操作?
注意:当我运行swag init时,当定义在DeviceRoute函数中时,json文件的输出如下所示

"info": {
        "description": "Teleops IOT server API",
        "title": "Teleops  API",
        "contact": {
            "name": "API Support",
            "email": "[email protected]"
        },
        "version": "2.0"
    },
    "host": "localhost:3000",
    "basePath": "/",
    "paths": {}
}
nimxete2

nimxete21#

文档生成器不会查看函数内部,而只查看函数外部。你最好重新构造你的路由,以允许这一点,例如,有一个服务器类型,定义方法,你的路由调用执行其功能。

相关问题