根据Open API 3.0的定义,创建一个用于golang服务器代码的框架
根据Open API 3.0的定义,创建一个使用golang编写的服务器代码的骨架。
简而言之
-
- 使用Swagger Editor创建API定义(Open API 3.0)
-
- 根据API定义创建Golang服务器代码的框架
- 实现和部署代码
请注意
这是初学者的备忘录。我只完成了一部分。
在Swagger编辑器中创建API定义(Open API 3.0)。
大家都在使用Swagger这种东西。
在软件开发中,由于规格文件与实现不一致等情况经常会遇到,所以我们一定要尽量避免。
据说有一个叫做Swagger Editor的可视化工具,听说很方便。这是个方便的工具。
创建的定义可以通过[文件] > [另存为YAML]来下载。
尽管Swagger似乎是事实上的标准,但如果有一个被标准化的标准Open API写法的话,个人认为还是应该倾向于遵循那个,即使它可能是被事实上承认的。
根据API定义创建Golang服务器代码的框架
我想做這件事。為什麼選擇Golang呢?因為等一下要容器化並部署的時候會比較輕鬆。而且據說幾年前開始,如果談到伺服器端就適合使用Golang。
好的,要创建骨架代码,可以使用openapi-generator。
下载jar文件,然后将其放在适当的位置即可。
2 – 入门指南
顺便说一下,似乎还有Node JS的封装程序,所以前端使用了Node JS的功能,要用npm命令进行安装。
npm install @openapitools/openapi-generator-cli -g
openapi-generator version
在创建骨架代码的同时,顺便创建一个Golang项目。
请先安装好Golang,可以安装在C:\go或者C:\Users\foo\go等路径下。
顺便提一下,关于Golang项目的目录结构,虽然似乎有各种说法,但事实并非如此。
在进行编程相关搜索时,最好使用Google搜索并设置为最近一年的结果。
截至2020年7月的当前时点,遵循这个结构似乎是最好的选择。
# ここで作成
openapi-generator generate -g go-server -i api\openapi.yaml -o myproject
如果执行上述命令,您将立即开始进行Go开发,目录为myproject及其子目录。
但是,使用无选项默认创建的骨架代码会违反go-lint的命名规则。
特别是如果您在VS Code中使用Golang扩展功能,那么默认的代码检查工具是go-lint,非常麻烦。
type ServiceOperationsApiController should be ServiceOperationsAPIControllergo-lint
听说这个字符串”这个Api”是openapi-generator默认附加的一个与其他骨架共享的前缀。
openapi-generator help generate
~ 省略 ~
--api-name-suffix <api name suffix>
Suffix that will be appended to all API names ('tags'). Default:
Api. e.g. Pet => PetApi. Note: Only ruby, python, jaxrs generators
suppport this feature at the moment.
# ここで作成
openapi-generator generate -g go-server -i api\openapi.yaml -o myproject --api-name-suffix API