V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
beneo
V2EX  ›  Go 编程语言

求助: Go 代码注释貌似是某个插件生成的

  •  
  •   beneo · 2024-09-05 13:06:23 +08:00 · 3164 次点击
    这是一个创建于 377 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大家好,我最近在学习使用 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 里面太容易写不对这样的注释了

    23 条回复    2024-09-06 10:46:36 +08:00
    lrh3321
        1
    lrh3321  
       2024-09-05 13:09:41 +08:00 via Android
    可以利用 vscode 的 snippets 来做
    zoharSoul
        2
    zoharSoul  
       2024-09-05 13:15:24 +08:00
    手写的
    ck65
        3
    ck65  
       2024-09-05 13:18:40 +08:00
    复制粘贴改一改
    GG668v26Fd55CP5W
        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”可以提供类似的功能。
    whitehack
        5
    whitehack  
       2024-09-05 13:28:19 +08:00
    @falcon05 #4 怎么一股 AI 的味道.
    GG668v26Fd55CP5W
        6
    GG668v26Fd55CP5W  
       2024-09-05 13:34:25 +08:00
    @whitehack 看到 v 站上有很多提问,我就写了一个油猴脚本,尝试用 AI 回答问题,看着还挺像回事,就没忍住发了出去。求放过,别举报我,下次我自己看好了。。。。
    whitehack
        7
    whitehack  
       2024-09-05 13:46:04 +08:00
    @falcon05 #6 把你的脚本交出来就不举报你
    beneo
        8
    beneo  
    OP
       2024-09-05 13:56:34 +08:00
    @zoharSoul 不会手写的把,因为太多了太多了,1panel 几乎每一个 func 都有
    Ayanokouji
        9
    Ayanokouji  
       2024-09-05 14:16:20 +08:00
    @beneo 我们项目都是手写的。。。
    NX2023
        10
    NX2023  
       2024-09-05 14:25:27 +08:00
    @falcon05 #6 https://www.v2ex.com/help/assertive
    「请不要把 AI 生成的回复,当作你自己的回复,发到这里。」
    GG668v26Fd55CP5W
        11
    GG668v26Fd55CP5W  
       2024-09-05 14:26:44 +08:00 via iPhone
    @NX2023 我知道,我想撤回了
    ninjashixuan
        12
    ninjashixuan  
       2024-09-05 14:28:25 +08:00
    如上面提到就是 swag 用来生成 swagger 文档的,当然不定全部手动,一些简单 curd 场景可以写脚本自动生成。
    monkeyWie
        13
    monkeyWie  
       2024-09-05 14:30:24 +08:00
    就是手写的啊,go 的生态就是这样,毕竟官方不支持注解只能走歪门邪道了
    knva
        14
    knva  
       2024-09-05 14:30:43 +08:00
    写一遍,然后剩下的 copilot 生成。
    xiaozirun
        15
    xiaozirun  
       2024-09-05 14:33:02 +08:00   ❤️ 1
    带 @符号的是 gin-swagger https://github.com/swaggo/gin-swagger
    gin 框架的接口文档注释只能手写
    beneo
        16
    beneo  
    OP
       2024-09-05 14:42:27 +08:00
    @xiaozirun 感谢感谢
    GG668v26Fd55CP5W
        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
    wzdsfl
        18
    wzdsfl  
       2024-09-05 15:25:04 +08:00
    @falcon05 #4 这位网友,你也不想你的回复被举报吧
    wangritian
        19
    wangritian  
       2024-09-05 16:48:37 +08:00
    我是找个类似的接口复制改一下
    clf
        20
    clf  
       2024-09-05 17:00:58 +08:00
    我倒是 IDEA 给自己团队写了一个接口文档生成插件。

    自动遍历深层的代码注释作为接口字段说明的值,如果没注释,先找同代码文件的同字段注释(一般一组 API 都是一个业务的),如果还没有找插件内置字典,还没有就留空。
    DefoliationM
        21
    DefoliationM  
       2024-09-05 18:20:13 +08:00 via Android
    手写的
    Desdemor
        22
    Desdemor  
       2024-09-06 09:59:23 +08:00
    手写的,然后 swag 根据手写的注释生成接口文档或者导入到 apifox 里
    zoharSoul
        23
    zoharSoul  
       2024-09-06 10:46:36 +08:00
    @beneo #8 就是手写的一般, 我们 golang 程序员就是这么狠
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   994 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:32 · PVG 03:32 · LAX 12:32 · JFK 15:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.