V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
puzzle9
V2EX  ›  程序员

后端的大佬们 你们的接口文档注释写道什么程度呀

  •  
  •   puzzle9 · 9 小时 35 分钟前 · 716 次点击

    如题

    这是组内另一个同事写的

    {
        "code": 200,
        "data": {
            "forum": {
                "forum_id": 1, //帖子 ID
                "user_id": 2, //发帖人 ID
                "content": "仅支持文本输入,简体中文、数字、大小写字母,中英文标点符号", //帖子内容
                "created_at": "2024-12-12 16:28", //发帖时间
                "user_name": "教师", //发帖人名称
                "avatar": "http://127.0.0.1:8000/assets/img/teacher_avatar_default.png" //发帖人头像
            },
            "forumReplyList": {
                "data": [
                    {
                        "forum_reply_id": 15, //回复内容 ID
                        "forum_id": 1, //帖子 ID
                        "user_id": 2, //回复用户 ID
                        "content": "又一次回复内容", //回复的内容
                        "created_at": "2024-12-14 22:54", //回复的时间
                        "forum_reply_like_count": 0, //回复的点赞
                        "user_name": "教师", //回复用户的名称
                        "avatar": "http://127.0.0.1:8000/assets/img/teacher_avatar_default.png", //回复用户的头像
                        "reply_user_name": "教师", //被回复的用户名
                        "is_delete": true, //是否是当前用户的回复:true 是当前用户的回复可以删除,false 不是当前用户的回复不能删除
                        "is_like": false //当前用户是否点赞,true 已点赞 false 未点赞
                    }
                ],
                "current": 1, //当前页
                "total": 12, //总共的数量
                "size": 10, //当前分页数量
                "has_more_page": true //是否有下一页:true 有下一页 false 没有下一页
            }
        }
    }
    

    这是我写的 完全无注释

    {
        "code": 200,
        "data": {
            "id": 2,
            "type": "in_select",
            "question_description": "请选择青龙还是白虎",
            "question_images": [],
            "question_options": [
                {
                    "description": "青龙",
                    "image": null
                },
                {
                    "description": "白虎",
                    "image": null
                }
            ],
            "student_answer_exists": true,
            "is_can_submit": false,
            "socket_name": "course_interact_1_2"
        }
    }
    
    {
        "code": 200,
        "data": [
            {
                "id": 2,
                "body": "顶层",
                "user_type": "teacher",
                "user_nickname": "教师昵称阿",
                "user_avatar": "http://127.0.0.1:8000/assets/img/teacher_avatar_default.png",
                "created_at": "2025-01-07 20:19:38",
                "childs": [
                    {
                        "id": 6,
                        "body": "回复 1 的回复 2",
                        "user_type": "student",
                        "user_nickname": "程凤英",
                        "user_avatar": "http://127.0.0.1:8000/assets/img/student_avatar_default.png",
                        "created_at": "2025-01-07 20:20:15",
                        "reply_user_nickname": "金莹"
                    },
                    {
                        "id": 5,
                        "body": "回复 1 的回复 1",
                        "user_type": "teacher",
                        "user_nickname": "安智渊",
                        "user_avatar": "http://127.0.0.1:8000/assets/img/teacher_avatar_default.png",
                        "created_at": "2025-01-07 20:20:12",
                        "reply_user_nickname": "金莹"
                    }
                ]
            }
        ]
    }
    

    然后嘛 组内的一个前端 希望我写的清楚一点 标清楚每个字段的含义

    我 产生了迷茫

    再者

    前端的大佬们

    你们心中的接口文档是咋样的

    12 条回复    2025-02-23 11:34:20 +08:00
    evan1
        1
    evan1  
       9 小时 7 分钟前 via iPhone
    后端,每个字段都有。这是基本的要求。
    v21984
        2
    v21984  
       5 小时 14 分钟前 via Android
    枚举值的加注释,有多个某 id 的加注释,其它不加
    linuxsuren
        3
    linuxsuren  
       5 小时 11 分钟前
    乱入下我的开源接口工具 https://github.com/LinuxSuRen/api-testing
    wogogoing
        4
    wogogoing  
       4 小时 55 分钟前 via iPhone
    不是在代码层面写好注释然后生成 swagger 文档吗?
    imdong
        5
    imdong  
       4 小时 53 分钟前 via iPhone
    不写注释鬼知道这个字段是干嘛的,到时候猜错了出 BUG ,是你改还是前端改?

    每个字段最少提供一个与前端对应的名称注释,是否必填,数据类型(格式要求),如果是枚举,则提供每个选项的值与对应说明或获取来源。

    如果这个结构在其他接口出现过,我会标明该字段内结构与注释以某接口的某字段下结构为准,

    例如 forumReplyList 字段下数据,我会标注为 数组内结构为 forumReply{},以接口 /reply/view 的同名结构为准,我在那个接口会明确指定该结构的名称。
    zbw0414
        6
    zbw0414  
       3 小时 47 分钟前
    先用大模型帮我构建一个基础的结构出来,比如根据代码或者 swagger 直接生成完整的文档,再把关键逻辑字段、易混淆的字段自己关注完善一下就行了。这种文档属于那种绝大部分都是废话,见文知意的;但是个别的字段确实比较绕需要特别说明的。如果你没有文档或者写的不细,那到时候真出了问题可能就是你背锅了;但是每个字段都打字又纯属体力活,所以分清主次,善用 AI 就好了。
    taoyuanming
        7
    taoyuanming  
       3 小时 38 分钟前
    如果你是前端,后端只给了不清不楚的返回示例,估计你更迷茫
    fyxtc
        8
    fyxtc  
       3 小时 24 分钟前
    自己开发如果你有把握保证字段名清晰明了就可以不用写
    比如 user_id 谁都知道是啥
    但是 is_delete 对于三个月后的你就丈二和尚了

    所以如果是多人协作,保证每个字段清晰注释是必要的,因为你无法保证每个字段命名都能让别人看得懂,而且这种只要写一遍就能让所有人受益(包括你自己),也是基本素养。
    q1102389095
        9
    q1102389095  
       2 小时 54 分钟前
    部分主要逻辑写注释至于枚举因为模型定义有替换成中文的方法所以也没什么注释,看是合作开发还是自己开发了,自己怎么舒服怎么来,合作基础的语法不用其他该写就写
    lvlongxiang199
        10
    lvlongxiang199  
       1 小时 47 分钟前
    `is_can_submit` 这个命名方式好奇怪啊
    mango777
        11
    mango777  
       1 小时 36 分钟前
    你的看字段名就知道含义,你同事的像是在告诉你 1+1=2 、这是鼠标、这是显示器,这种层次
    mango777
        12
    mango777  
       1 小时 36 分钟前
    要么就备注在类里,用 swagger 显示字段含义
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2553 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 05:10 · PVG 13:10 · LAX 21:10 · JFK 00:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.