Swag是一个用于自动生成API文档的工具,而net/http则是Golang内置的HTTP库。下面是如何将Swag与net/http集成的步骤:
- 安装Swag
使用以下命令安装Swag:
go get -u github.com/swaggo/swag/cmd/swag
- 初始化Swagger文档
在项目根目录下运行以下命令以初始化Swagger文档:
swag init
这将在项目根目录下创建一个docs文件夹,并生成swagger.json和swagger.yaml两个文件。
- 集成到net/http中
首先,在main.go文件中引入gorilla/mux包(可选,用于更方便地定义路由),并注册路由:
import (
"github.com/gorilla/mux"
"github.com/swaggo/http-swagger"
)
func main() {
r := mux.NewRouter()
// 注册Swagger路由
r.PathPrefix("/swagger/").Handler(httpSwagger.WrapHandler)
// 其他路由...
}
或者,如果不使用mux,则可以直接使用http.Handle来注册路由:
import (
"net/http"
"github.com/swaggo/http-swagger"
)
func main() {
http.Handle("/swagger/", httpSwagger.WrapHandler)
// 其他路由...
}
- 编写Swagger注释
在需要生成API文档的代码段前添加注释,例如:
// @Summary 获取用户信息
// @Description 获取指定id的用户信息
// @Tags User
// @Accept json
// @Produce json
// @Param id path int true "用户ID"
// @Success 200 {object} ResponseUserInfo{}
// @Failure 404 {object} ResponseError{}
// @Router /user/{id} [get]
func getUser(w http.ResponseWriter, r *http.Request) {
// 实现获取用户信息的代码...
}
- 生成API文档
重新运行swag init命令,即可在docs文件夹中生成更新后的Swagger文档。
- 访问Swagger UI界面
启动应用程序并访问http://localhost:8080/swagger/index.html即可看到自动生成的API文档界面。




