localhost:8080/swagger/index.html возвращает 404 page not found (swaggo)

Рейтинг: 0Ответов: 1Опубликовано: 08.08.2023

Для своего REST API реализованного на golang делаю документацию, решил воспользоваться библиотрекой swag, описание которой по этой ссылке https://github.com/swaggo/swag, сделал все по инструкции и по пунктам, сначала добавил комментарии в код, после скачал go install github.com/swaggo/swag/cmd/swag@latest, далее запустил swag init, который сгенерировал docs, после этого запускаю код go run mai.go и по логике на http://localhost:8080/swagger/index.html должна быть документация, но вместо этого возвращается 404 page not found. Возможно кто-то уже сталкивался с подобной проблемой, расскажите какие предпосылки могут привести к данному моменту или, что я мог упустить Содержание main.go:

package main

import (
    "api/Routes"
)

const version = "1.0.0"

//@title REST API
//@version 1.0.0
//@description My REST API
// @contact.name contact to developers
// @contact.email example@gmail.com
// @host localhost:8080
// @BasePath /api/v1
func main() {
    Routes.BaseRouter()
}

Все остальные проекты выключены, так что только только он может слушать порт 8080

Вот api\Routes:

package Routes

    import (
        "api/Handlers"
        "log"
    
        "github.com/gin-contrib/cors"
        "github.com/gin-gonic/gin"
    )
    
    func BaseRouter() {
        router := gin.Default()
        router.Use(cors.Default())
        router.POST("/api/v1/orders", Handlers.PostOrders)
        router.GET("/api/v1/orders/:orderId/boxes", Handlers.GetBoxes)
    
        err := router.Run("localhost:8080")
        if err != nil {
            log.Println("Error running router: ", err)
        }
    
    }

Ответы

▲ 0Принят

Ошибка была в том, что я не учел, что используется библиотека gin, так что вот исправленная часть, в которой импортированы сгенерированные доки, swaggerFiles "github.com/swaggo/files", ginSwagger "github.com/swaggo/gin-swagger", а также добавлен новый эндпоинт для получения документации

package Routes

import (
    "api/Handlers"
    "log"

    _ "api/docs"

    "github.com/gin-contrib/cors"
    "github.com/gin-gonic/gin"
    swaggerFiles "github.com/swaggo/files"
    ginSwagger "github.com/swaggo/gin-swagger"
)

func BaseRouter() {
    router := gin.Default()
    router.Use(cors.Default())
    router.GET("swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
    router.POST("/api/v1/orders", Handlers.PostOrders)
    router.GET("/api/v1/orders/:orderId/boxes", Handlers.GetBoxes)

    err := router.Run("localhost:8080")
    if err != nil {
        log.Println("Error running router: ", err)
    }

}