nodejs 后端,怎么比较好的生成接口文档?(排除 nest.js) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wuxilaoshiren
V2EX    Node.js

nodejs 后端,怎么比较好的生成接口文档?(排除 nest.js)

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

    各位在公司里的 nodejs 后端项目,怎么生成的接口文档?排除 nest.js 和 jsdoc 的方式。

    29 条回复    2025-08-12 11:45:03 +08:00
    wuxilaoshiren
        1
    wuxilaoshiren  
    OP
       164 天前
    有没有正经开发 nodejs 后端的老哥帮忙看看
    jikun
        2
    jikun  
       164 天前
    不用 swagger 吗?
    wu67
        3
    wu67  
       164 天前
    后端就跟前端对接而已啊, 前端能看不懂你的代码?
    你把关键方法的注释按 jsdoc 写好就行了, 直接把项目 pull 权限开给前端组.
    Zhuzhuchenyan
        4
    Zhuzhuchenyan  
       164 天前
    经历过的正经的大项目基本最后都上了 Nest.js

    小项目的话,最近在做 CF Worker 相关,CF 强推 https://github.com/cloudflare/chanfana ,可以根据 Zod 生成 OpenAPI 文档
    XCFOX
        5
    XCFOX  
       164 天前
    推荐 orc( https://orpc.unnoq.com/ ) :你只管写代码,orpc 会直接根据 zod 、valibot 类型生成 OpenAPI 文档。
    更推荐 GQLoom ( https://gqloom.dev/ ) : 你只管写代码,GQLoom 会直接根据 zod 类型、valibot 类型、drizzle 表定义 、Prisma 模型定义生成 GraphQL 文档。
    oppy
        6
    oppy  
       163 天前
    让 AI 给你生成 swagger
    nomagick
        7
    nomagick  
       163 天前
    我自己写了一套..

    完全不用 Nest.js
    没有 Zod 依赖..

    恕我直言现在 Node.js 生态里面,我不是针对谁,全部都是
    mumbler
        8
    mumbler  
       163 天前
    cursor 打开项目,ctrl+i, 帮我生成接口文档
    shakaraka
        9
    shakaraka  
    PRO
       163 天前
    参考 elysiajs ,配合 drizzle 的话,可以达到全链路强类型。

    https://elysiajs.com
    jake4545
        11
    jake4545  
       163 天前
    让 AI review 代码,顺便生成 markdown 格式的接口文档
    weipt
        12
    weipt  
       163 天前
    我很好奇,有公司使用 nodejs 开发后端?
    cune
        13
    cunoe  
       163 天前 via Android
    让 ai 写 openapi 文档
    jamesjammy061
        14
    jamesjammy061  
       163 天前
    感觉 immich 做的就挺好
    WasteNya
        15
    WasteNya  
       163 天前 via Android
    直接用 swagger / openapi spec 啊
    christmasin2015
        16
    christmasin2015  
       163 天前
    前后端都是 js/ts 了,你们应该单独开一个项目把所有接口约定在 interface 里。
    asen001
        17
    asen001  
       163 天前
    如果用 fastify ,可以用 json schema ,接口文档,基本的入参校验都有了。json schema 用 typebox + ai 写,还算方便。

    公司只能接受 java ,接的私活用 node
    capric
        18
    capric  
       163 天前
    遵循 openapi 规范,直接通过接口拿到全局视图
    loveshuyuan
        19
    loveshuyuan  
       163 天前
    hono openapi
    llej
        20
    llej  
       163 天前
    都用 node 了,其实可以不生成文档,直接生成 npm lib 给前端用
    AndyChina
        21
    AndyChina  
       163 天前
    没人用 trpc 吗, 前端直接强类型校验, 都不用看文档的
    kenshinhu
        22
    kenshinhu  
       163 天前
    我早期的是使用 apidoc 直接在代码上注释转成 apidoc
    Hanser002
        23
    Hanser002  
       163 天前
    之前 nodejs 后端的时候用 kubb 基于 swagger 生成对应的 useQuery 。

    借楼问下,如果后端不是 nodejs 有没有合适的方案
    ghos
        24
    ghos  
       163 天前
    @asen001 node 有什么快速开发的框架吗,目前是 java 技术栈
    @llej 也是需要手工写 axios 请求的吧,如果想要连这步都省了感觉 openapi 生成比较好
    AllenTsui
        25
    AllenTsui  
       163 天前
    让 cursor 给你写文档
    kid1412621
        26
    kid1412621  
       162 天前 via iPhone
    @XCFOX #5 原来是作者啊
    llej
        27
    llej  
       162 天前
    @ghos 你可以试试我这个项目,虽然不支持 openapi ,但是前后端都不用手写请求,https://github.com/2234839/TsFullStack
    humbass
        28
    humbass  
       133 天前
    我们一直使用 markdown 手写,req, res 分别一个表格参数,一个 json 示例。
    现在有 AI 就更方便,给几个示例,后面的都可以自动生成
    zhennann
        29
    zhennann  
       59 天前
    为什么要排除 nest.js 呢?是否是因为 nest.js 提供的装饰器并不好用,声明一些 Openapi 相关的元信息太繁琐。
    可以试试 VonaJS ,装饰器非常简洁,而且把参数验证与 Openapi 统一在一起了,不再是两张皮(不再写两遍)。同时 Openapi 中的描述信息还支持国际化能力。可以参见:[Entity]( https://vona.js.org/zh/guide/essentials/api/entity.html)和[Controller]( https://vona.js.org/zh/guide/essentials/api/controller.html)
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5354 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 08:59 PVG 16:59 LAX 01:59 JFK 04:59
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86