大家好,我最近在学习使用 Go 语言进行后端开发,遇到了一个问题,希望能得到大家的帮助。 我在项目中看到了一些类似 Swagger 风格的注释,像这样:
// @Tags App
// @Summary Page app installed
// @Description 分页获取已安装应用列表
// @Accept json
// @Param request body request.AppInstalledSearch true "request"
// @Success 200
// @Security ApiKeyAuth
// @Router /apps/installed/search [post]
请问 这些注释是如何生成的?是否有 IDE 插件可以自动补全这些注释?否则我在 IDE 里面太容易写不对这样的注释了
![]() |
1
lrh3321 2024-09-05 13:09:41 +08:00 via Android
可以利用 vscode 的 snippets 来做
|
![]() |
2
zoharSoul 2024-09-05 13:15:24 +08:00
手写的
|
![]() |
3
ck65 2024-09-05 13:18:40 +08:00
复制粘贴改一改
|
![]() |
4
GG668v26Fd55CP5W 2024-09-05 13:19:06 +08:00
这些注释是用来生成 API 文档的,通常使用的是 Swagger (现在叫 OpenAPI )规范。在 Go 语言中,常用的工具是`swaggo/swag`。你可以通过安装这个工具来生成这些注释。
具体步骤如下: 1. 安装`swag`工具:在命令行中运行`go get -u github.com/swaggo/swag/cmd/swag`。 2. 在你的 Go 项目中运行`swag init`,这会根据你的代码生成注释。 至于 IDE 插件,JetBrains 的 GoLand IDE 有一个官方插件叫做“Goanno”,可以帮助你自动补全这些注释。如果你使用的是 VS Code ,也有一些插件如“Go for Visual Studio Code”可以提供类似的功能。 |
![]() |
6
GG668v26Fd55CP5W 2024-09-05 13:34:25 +08:00
@whitehack 看到 v 站上有很多提问,我就写了一个油猴脚本,尝试用 AI 回答问题,看着还挺像回事,就没忍住发了出去。求放过,别举报我,下次我自己看好了。。。。
|
9
Ayanokouji 2024-09-05 14:16:20 +08:00
@beneo 我们项目都是手写的。。。
|
![]() |
10
NX2023 2024-09-05 14:25:27 +08:00
|
![]() |
11
GG668v26Fd55CP5W 2024-09-05 14:26:44 +08:00 via iPhone
@NX2023 我知道,我想撤回了
![]() |
12
ninjashixuan 2024-09-05 14:28:25 +08:00
如上面提到就是 swag 用来生成 swagger 文档的,当然不定全部手动,一些简单 curd 场景可以写脚本自动生成。
|
![]() |
13
monkeyWie 2024-09-05 14:30:24 +08:00
就是手写的啊,go 的生态就是这样,毕竟官方不支持注解只能走歪门邪道了
|
![]() |
14
knva 2024-09-05 14:30:43 +08:00
写一遍,然后剩下的 copilot 生成。
|
15
xiaozirun 2024-09-05 14:33:02 +08:00 ![]() 带 @符号的是 gin-swagger https://github.com/swaggo/gin-swagger
gin 框架的接口文档注释只能手写 |
![]() |
17
GG668v26Fd55CP5W 2024-09-05 14:54:53 +08:00
@whitehack 只是把别人用 AI 总结的油猴脚本改成提问的,传到 greasyfork 了。
https://greasyfork.org/zh-CN/scripts/506898-v2ex-ai-%E5%9B%9E%E7%AD%94%E9%97%AE%E9%A2%98 |
![]() |
19
wangritian 2024-09-05 16:48:37 +08:00
我是找个类似的接口复制改一下
|
![]() |
20
clf 2024-09-05 17:00:58 +08:00
我倒是 IDEA 给自己团队写了一个接口文档生成插件。
自动遍历深层的代码注释作为接口字段说明的值,如果没注释,先找同代码文件的同字段注释(一般一组 API 都是一个业务的),如果还没有找插件内置字典,还没有就留空。 |
21
DefoliationM 2024-09-05 18:20:13 +08:00 via Android
手写的
|
![]() |
22
Desdemor 2024-09-06 09:59:23 +08:00
手写的,然后 swag 根据手写的注释生成接口文档或者导入到 apifox 里
|