在Golang应用中实现Swagger渲染

在Golang应用中实现Swagger渲染 你好,

我写了一篇Medium文章,其中介绍了在使用GoFr编写API时如何渲染Swagger。

查看文章请点击此处

GoFr还拥有许多功能,旨在展示如何仅专注于核心业务逻辑即可构建生产就绪的应用程序。

谢谢,希望你觉得它有用!

代码仓库: https://github.com/gofr-dev/gofr 网站: https://gofr.dev/


更多关于在Golang应用中实现Swagger渲染的实战教程也可以访问 https://www.itying.com/category-94-b0.html

1 回复

更多关于在Golang应用中实现Swagger渲染的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


在GoFr框架中集成Swagger文档确实非常方便。以下是一个简单的示例,展示如何在GoFr应用中配置和渲染Swagger:

package main

import (
    "gofr.dev/pkg/gofr"
)

func main() {
    app := gofr.New()

    // 静态文件服务,用于提供Swagger UI资源
    app.Static("/swagger", "./swagger")

    // 添加Swagger路由
    app.GET("/swagger", func(c *gofr.Context) (interface{}, error) {
        c.Redirect("/swagger/index.html")
        return nil, nil
    })

    // 你的API路由
    app.GET("/users", GetUsers)
    app.POST("/users", CreateUser)

    app.Start()
}

func GetUsers(c *gofr.Context) (interface{}, error) {
    // 业务逻辑
    return []string{"user1", "user2"}, nil
}

func CreateUser(c *gofr.Context) (interface{}, error) {
    // 业务逻辑
    return "user created", nil
}

需要确保项目目录中包含Swagger规范文件(swagger.json或swagger.yaml)和Swagger UI的静态文件。GoFr会自动处理路由映射,使得Swagger UI可以通过/swagger路径访问。

对于生产环境,建议将Swagger文档的访问限制在特定环境(如开发环境),可以通过环境变量来控制:

if os.Getenv("ENVIRONMENT") == "development" {
    app.Static("/swagger", "./swagger")
}

GoFr的这种设计确实让开发者能够更专注于业务逻辑的实现,而无需过多关注基础设施的配置。

回到顶部