Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

集成 Swagger 及优化接口 #40

Merged
merged 7 commits into from
Mar 19, 2021
Merged

集成 Swagger 及优化接口 #40

merged 7 commits into from
Mar 19, 2021

Conversation

jwma
Copy link
Owner

@jwma jwma commented Mar 19, 2021

为了解决部分开发者需要查看接口文档的需求,所以使用 Swagger 提供接口文档。

假设在本地运行此 PR 的代码,当我们的 apiserver 运行在 http://localhost:8080 时,可以通过 http://localhost:8080/swagger/index.html 访问到接口文档,访问时,会询问你提供账号和密码(此账号密码非后台系统账号密码,是独立的),填入后就能访问。

接口文档的账号密码

可以通过 API_DOC_USERNAMEAPI_DOC_PASSWORD 环境变量设置 API 文档的访问账号,如果没有设置,则会使用默认的账号:apidoc,密码:showmethedoc

接口文档的 Host

如果需要在生产环境也能正常使用接口文档对接口进行请求测试,则需要将生产环境下 apiserver 所在的 Host,例如 a.com 设置到 API_DOC_HOST 环境变量。

开发环境下无需额外设置。

接口文档中直接调用接口的用法

此系统目前除了登入接口外,其他所有接口都需要验证登录态,简单来说就是在调用其他接口之前,需要先通过登入接口获取一个令牌,后续要调用其他接口时,都会用到这个令牌。

1. 调用登入接口,获取令牌

点击 Try it out

编辑请求参数并请求登入接口

请求成功,查看令牌

设置接口文档授权信息

回到接口文档顶部,点击 Authorize 按钮

将令牌以特定的格式填入(Bearer xxxx),然后点击 Authorize 按钮

设置完毕,点击 Close,当前页面设置完毕后切勿刷新,否则需要再次设置(Swagger UI 的默认行为,实在想吐槽)

请求需要校验登录态的接口,如获取短链接列表接口

在接口页面找到短链接列表接口对应的卡片,点击 Try it out,然后点击 Execute,正常来说下方就会出现短链接列表接口返回的数据了。

jwma added 5 commits March 19, 2021 15:55
- 安装依赖
- Makefile 新增 docs target
- 抽取通用的 Response
- 为接口定义其对应的 Request 及 ResponseData
- 接口返回的数据,字段格式一律采用小写驼峰式
- 优化系统配置接口读写的相关代码
适配新的接口数据结构
删除 http client 的 API 请求文件
可以通过 API_DOC_USERNAME, API_DOC_PASSWORD 环境变量设置 API 文档的访问账号,如果没有设置,则会使用默认的账号密码
可以自动侦测 API 文档可以使用的 Host,也可以通过定义 API_DOC_HOST 指定
@jwma jwma added the enhancement New feature or request label Mar 19, 2021
@jwma jwma added this to the v1.4.1 milestone Mar 19, 2021
@jwma jwma self-assigned this Mar 19, 2021
@jwma jwma merged commit 05ad142 into master Mar 19, 2021
@jwma jwma deleted the swagger branch March 19, 2021 11:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant