Added swagger support
This commit is contained in:
parent
d49ca4fa68
commit
b31c00ed70
@ -1,14 +1,25 @@
|
|||||||
import subprocess
|
from subprocess import run
|
||||||
|
|
||||||
GO_PACKAGES = [
|
GO_PACKAGES = [
|
||||||
"github.com/gofiber/fiber/v2"
|
"github.com/gofiber/fiber/v2",
|
||||||
|
"github.com/gofiber/swagger",
|
||||||
|
]
|
||||||
|
|
||||||
|
GO_INSTALL = [
|
||||||
|
"github.com/swaggo/swag/cmd/swag@latest"
|
||||||
]
|
]
|
||||||
|
|
||||||
def main() -> int:
|
def main() -> int:
|
||||||
subprocess.run(["git", "init"])
|
run(["git", "init"])
|
||||||
|
|
||||||
for package in GO_PACKAGES:
|
for package in GO_PACKAGES:
|
||||||
subprocess.run(["go", "get", "-u", package])
|
run(["go", "get", "-u", package])
|
||||||
|
|
||||||
|
for package in GO_INSTALL:
|
||||||
|
run(["go", "install", package])
|
||||||
|
|
||||||
|
run(["swag", "init", "-d", "internal/app"])
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
@ -3,7 +3,7 @@ package api
|
|||||||
import (
|
import (
|
||||||
"github.com/gofiber/fiber/v2"
|
"github.com/gofiber/fiber/v2"
|
||||||
"github.com/gofiber/fiber/v2/middleware/helmet"
|
"github.com/gofiber/fiber/v2/middleware/helmet"
|
||||||
"{{cookiecutter.module_path}}/internal/app/api/v1"
|
v1 "{{cookiecutter.module_path}}/internal/app/api/v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
func ConfigureRoutes(app *fiber.App) error {
|
func ConfigureRoutes(app *fiber.App) error {
|
||||||
|
@ -5,14 +5,21 @@ import (
|
|||||||
"github.com/gofiber/fiber/v2/middleware/requestid"
|
"github.com/gofiber/fiber/v2/middleware/requestid"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// @Summary Endpoint for testing latency
|
||||||
|
// @Description Endpoint for testing latency
|
||||||
|
// @Tags Health
|
||||||
|
// @Success 200 {string} string
|
||||||
|
// @Router /api/v1/ping [get]
|
||||||
|
func Ping(c *fiber.Ctx) error {
|
||||||
|
return c.SendString("pong")
|
||||||
|
}
|
||||||
|
|
||||||
func ConfigureRoutes(router fiber.Router) error {
|
func ConfigureRoutes(router fiber.Router) error {
|
||||||
v1 := router.Group("/v1")
|
v1 := router.Group("/v1")
|
||||||
|
|
||||||
v1.Use(requestid.New())
|
v1.Use(requestid.New())
|
||||||
|
|
||||||
v1.Get("/ping", func(c *fiber.Ctx) error {
|
v1.Get("/ping", Ping)
|
||||||
return c.SendString("pong")
|
|
||||||
})
|
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -5,9 +5,19 @@ import (
|
|||||||
"github.com/gofiber/fiber/v2/middleware/compress"
|
"github.com/gofiber/fiber/v2/middleware/compress"
|
||||||
"github.com/gofiber/fiber/v2/middleware/helmet"
|
"github.com/gofiber/fiber/v2/middleware/helmet"
|
||||||
"github.com/gofiber/fiber/v2/middleware/logger"
|
"github.com/gofiber/fiber/v2/middleware/logger"
|
||||||
|
"github.com/gofiber/swagger"
|
||||||
|
_ "{{cookiecutter.module_path}}/docs"
|
||||||
"{{cookiecutter.module_path}}/internal/app/api"
|
"{{cookiecutter.module_path}}/internal/app/api"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// @title {{cookiecutter.project_name}} API
|
||||||
|
// @version 1.0
|
||||||
|
// @description Documentation for the {{cookiecutter.project_name}} API.
|
||||||
|
|
||||||
|
// @securityDefinitions.apikey ApiKeyAuth
|
||||||
|
// @in header
|
||||||
|
// @name Authorization
|
||||||
|
// @description Token used to authenticate against the API.
|
||||||
func Run() error {
|
func Run() error {
|
||||||
app := fiber.New()
|
app := fiber.New()
|
||||||
|
|
||||||
@ -15,6 +25,11 @@ func Run() error {
|
|||||||
app.Use(compress.New())
|
app.Use(compress.New())
|
||||||
app.Use(helmet.New())
|
app.Use(helmet.New())
|
||||||
|
|
||||||
|
// Prefork is only enabled in prod-mode.
|
||||||
|
if !app.Config().Prefork {
|
||||||
|
app.Get("/swagger/*", swagger.HandlerDefault)
|
||||||
|
}
|
||||||
|
|
||||||
api.ConfigureRoutes(app)
|
api.ConfigureRoutes(app)
|
||||||
|
|
||||||
return app.Listen(":3000")
|
return app.Listen(":3000")
|
||||||
|
@ -34,4 +34,7 @@ stop: ## Stop the container
|
|||||||
start: ## Start the container
|
start: ## Start the container
|
||||||
podman start {{project_name}}
|
podman start {{project_name}}
|
||||||
|
|
||||||
|
swagger: ## Generate swagger documentation
|
||||||
|
swag init -d internal/app
|
||||||
|
|
||||||
{%- endraw %}
|
{%- endraw %}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user