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

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

  •  
  •   beneo · 72 天前 · 2753 次点击
    这是一个创建于 72 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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