随着现代化应用架构的出现,api(application programming interface)已经成为现代web应用程序的基础组建。随着api数量的不断增加,api文档的编写和维护变成了一项繁琐的任务。因此,简化api文档的编写和维护过程是非常有必要的。swagger是一个流行的解决方案,它为web api提供了强大的文档化工具。本文将介绍如何在golang中使用swaggerui实现api在线文档。
swagger简介
swagger是一组开源的api构建工具,可以帮助开发人员设计、构建、文档化和测试restful api。它包括了swagger editor、swagger ui和swagger codegen等多个工具。
其中,swagger editor是一个基于web浏览器的编辑器,可以帮助开发人员编写和编辑swagger规格书,swagger ui是一个可以将swagger规格书渲染成api文档的工具,swagger codegen可以自动生成客户端和服务器端api代码。
在golang中使用swaggerui实现api在线文档
golang是一种非常流行的编程语言,它的优点在于有很高的并发性能和低的开销。它使用了叫做goroutines的轻量级线程来处理并发,并且支持内存自动回收和垃圾回收。在golang中,可以使用go-swagger库来实现api在线文档。
安装swagger首先,需要安装swagger,可以通过下面的命令来安装:
$ brew tap go-swagger/go-swagger$ brew install go-swagger
初始化一个golang项目接下来,需要在本地计算机上初始化一个golang项目。使用下面的命令在本地计算机上创建了一个名为go-swagger-api的golang项目:
$ mkdir go-swagger-api $ cd go-swagger-api $ go mod init go-swagger-api
创建api定义为了创建api定义,需要创建一个yaml文件,并在其中定义api设置。在本例中,可以创建一个文件名为pets.yaml的文件,并在其中添加以下代码:
swagger: "2.0"info: version: 1.0.0 title: petstore api produces:- application/jsonpaths: /pets: get: summary: list all pets responses: 200: description: ok 500: description: internal server error post: summary: add a new pet parameters: - in: body name: body schema: "$ref": "#/definitions/pet" required: true responses: 201: description: created 500: description: internal server errordefinitions: pet: type: object properties: id: type: integer name: type: string tag: type: string
生成api服务端框架接下来,需要使用go-swagger工具生成代码,该代码生成器将自动使用上一步中定义的配置生成代码。在终端中输入以下命令:
$ swagger generate server -a go-swagger-api -f pets.yaml
此命令将根据yaml文件中的定义生成服务端框架。
启动api服务器接下来,需要启动api服务器并验证它是否正常工作。在终端中输入以下命令:
$ cd cmd/go-swagger-api-server/$ go run main.go
输出应该会类似于下面这样:
serving go-swagger-api at http://127.0.0.1:8080
现在,应该可以在web浏览器中访问以下url以验证api是否正常工作:http://127.0.0.1:8080/pets。
集成swaggerui最后一步是在api服务器中集成swaggerui。首先,在项目的根目录下创建一个名为swagger-ui的目录,并在其中下载swaggerui,可以通过下面的命令来实现:
$ mkdir swagger-ui && cd swagger-ui && wget https://github.com/swagger-api/swagger-ui/archive/v3.32.3.tar.gz && tar xfz v3.32.3.tar.gz --strip-components=1 && rm v3.32.3.tar.gz
接下来,在api服务器的main.go文件中添加以下代码:
// setup the swaggerui middlewareswaggerui := http.fileserver(http.dir("./swagger-ui/dist"))r.pathprefix("/docs").handler(http.stripprefix("/docs", swaggerui))
此代码将swaggerui中的dist目录作为静态资源文件公开,用于呈现实际的swaggerui。
现在,可以在浏览器中访问以下url以查看自动生成的api文档:http://localhost:8080/docs/index.html。
结论
在golang中使用swaggerui实现api在线文档不难,这为api文档的编写和维护带来了很大的便利。通过使用swagger,可以自动为api生成文档,同时后端工程师和前端工程师可以快速理解api接口。这大大简化了api的开发,测试和文档编写过程,让开发人员更专注于业务逻辑的实现。
以上就是在golang中使用swaggerui实现api在线文档的详细内容。