在golang中,可以使用swaggo
库来生成Swagger接口文档。
以下是一个简单的示例代码:
package main
import (
"net/http"
"github.com/swaggo/http-swagger"
"github.com/swaggo/swag/example/basic/api"
)
// @title Swagger Example API
// @description This is a sample API for demonstrating Swagger documentation.
// @version 1.0
// @host localhost:8080
// @BasePath /v1
func main() {
router := api.NewRouter()
http.Handle("/swagger/", http.StripPrefix("/swagger/", http.FileServer(http.Dir("swagger"))))
http.Handle("/", router)
http.ListenAndServe(":8080", nil)
}
在上面的示例中,我们定义了一个名为main()
的函数,并使用api.NewRouter()
创建了一个新的路由器。同时,我们还通过使用http-swagger
库和静态文件服务器将Swagger UI绑定到URL路径“/swagger/”下。
需要注意的是,在实际开发过程中,我们需要在每个API函数上方添加注释以指定其参数、返回值和描述等信息。具体注释格式如下:
// GetUsers godoc
// @Summary 获取用户列表
// @Description 获取所有用户列表。
// @Tags users
// @Accept json
// @Produce json
// @Success 200 {array} UserResponse
// @Failure 404 {object} ErrorResponse
// @Router /users [get]
func (h *Handler) GetUsers(w http.ResponseWriter, r *http.Request) {
// ...
}
在以上示例中,我们使用了特定格式的注释来描述了GetUsers()
函数的功能,包括其参数、返回值、标签和路由等信息。这些注释将在运行swag init
命令时被解析并生成Swagger文档。
最后,在项目根目录下运行swag init
命令即可生成Swagger接口文档。