当前位置: 首页 > 后端技术 > Node.js

apiDoc生成接口文档不费吹灰之力

时间:2023-04-03 14:45:29 Node.js

效果背景之前做前端的时候,后端同学自恃老同志,不给我接口文档。我好不容易拿着笔坐在他旁边听他口述写下需要的api接口url和参数等等,现在后台是你自己做的,不能这样给你的自己的苦,怎么能给其他同学呢?这时候你值得拥有apiDoc,一个稳定的输出apidoc官网高质量的接口文档安装是全局安装,我喜欢在项目中安装,这样在另一个环境下npminstall就可以下载所有的依赖包npminstallapidoc--save-dev/-D编写注解注册接口的注释/***@api{post}/v1/auth/register用户注册*@apiNameUserRegister*@apiGroupuserAuthentication**@apiParam{String}username新用户的用户名。*@apiParam{String}password新用户的密码。**@apiSuccess{String}username注册用户的用户名。*@apiSuccess{string}message注册成功信息。**@apiSuccessExampleSuccess-Response:*HTTP/1.1200OK*{*"username":"username",*"message":"Userregisteredsuccessful"*}**@apiErrorREGISTER_FAILURE注册失败。**@apiErrorExample错误响应:*HTTP/1.1500内部服务器错误*{*"err":"REGISTER_FAILURE",*"message":"User注册失败!”*}*/删除接口的注解/***@api{delete}/v1/auth/user/用户删除*@apiNameUserDelete*@apiGroupuserAuthentication**@apiParam{String}username用户的用户名。*@apiParam{String}executor此操作的执行者。**@apiSuccess{String}username删除用户的用户名。*@apiSuccess{string}message删除成功时的消息。**@apiSuccessExampleSuccess-Response:*HTTP/1.1200OK*{*"username":"username",*"message":"删除用户成功"*}**@apiErrorNOT_LOGIN注册失败。**@apiErrorExample错误响应:*HTTP/1.1401Unauthorized*{*"err":"NOT_LOGIN",*"message":"Userhasnotlogonin!"*}*/写入命令将apidoc-irouters/写入package.json的命令中routers文件夹下载是路径文件"scripts":{"test":"echo\"Error:notestspecified\"&&exit1","lint":"eslint.","apidoc":"apidoc-irouters/","开发”:“节点——和谐指数。js"},{"message":"Done.","level":"info"}出现,即命令执行成功,执行npmrunapidoc获取接口文档,这样doc文件项目中会出现这样,doc文件夹里面包含了页面的所有素材,打开index.html,热接口文档就诞生了,结构解释,漂亮的生成了一个静态文档,但是实际控制本方法是api_data.js和api_project.js,但实际数据展示是由两个json文件组成的,api_data.json和api_project.json,所以在将其他json格式转换成api_data.json和api_project.json时,将这两个文件替换apidoc生成,然后替换js文件直接生成静态文件。命令行界面查看所有命令apidoc-hoptionfunction-f--file-filters用于选择要分析的文件的regex过滤器(可以使用多个-f)。(默认值:[])-e,--exclude-filters用于选择不应解析的文件/目录的正则表达式过滤器(可以使用many-e)。(默认:[])-i,--input输入/source目录名。(默认:[])-o,--output输出目录。(默认:"./doc/")-t,--template输出文件使用模板。(默认值:“/usr/local/lib/node_modules/apidoc/template/”)-c,--config包含配置文件(apidoc.json)的目录路径。(默认值:“./”)-p,--privateIncludeprivateAPIsinoutput.-v,--verbose详细的调试输出。--debug显示调试信息。--color关闭日志着色。--parse只解析文件并返回数据,不创建文件。--parse-filters可选的用户自定义过滤器parser.format-name=filename(default:[])--parse-languages可选的用户自定义language.format-name=filename(default:[]--parse-parsers可选的用户定义的解析器.format-name=filename(默认值:[])--parse-workers可选的用户定义的workers.format-name=filename(默认值:[])--silent关闭所有输出。--simulate在不写入任何文件的情况下执行。--markdown[markdown]关闭默认标记解析器或将文件设置为自定义解析器。(默认值:true)--line-ending关闭行尾的自动检测。允许值:lf、cr、crlf。--encoding设置源代码的编码。[UTF8]格式。(default:"utf8")-h,--help用于输出使用信息的apiDoc的参数(翻译)@api@api{method}path[title]必填!如果没有这个指示符,apidoc解析器将忽略docblock。唯一的例外是由@apidefine定义的文档块,它不需要@api。Usage:@api{get}/user/:idUsersuniqueID.NameDescriptionmethodRequest方法名称:DELETE,GET,POST,PUT,...pathRequestPath.title可选的简短标题。(用于导航和文章标题)/***@api{get}/user/:id*/@apiName@apiName名称应始终使用。定义方法文档块的名称。该名称将用于生成的输出中的子导航。结构定义不需要@apinname。用法:@apinnamegetuserNameDescriptionname方法的唯一名称。可以定义相同的名称和不同的@apiversion。格式:方法+路径(如get+user),建议只有一个,你可以随意命名。也可以用作导航标题。/***@api{get}/user/:id*@apiNameGetUser*/@apiGroup@apiGroup名称应始终使用。定义方法文档块所属的组。组将用于生成的输出中的主要导航。结构定义不需要@apigroup。用法:@apigroupuserNameDescriptionname组名。也使用导航标题。/***@api{get}/user/:id*@apiGroupUser*/@apiParam@apiParam[(group)][{type}][field=defaultValue][description]描述传递给API方法的参数.用法:@apiparam(mygroup)numberid用户唯一id。NameDescription(group)可选所有参数将按此名称分组。如果没有组,则设置默认参数。您可以使用@apidefine设置标题和描述。{type}可选参数类型,如{Boolean}、{Number}、{String}、{Object}、{String[]}{type{size}}可选变量大小信息{string{..5}}最大值5位的字符串。{string{2..5}}最小为2,最大为5的字符串。{number{100-999}}i100到999之间的数字。{type=allowedValues}optionalRelated可变允许值信息。{string="small"}包含小字符串,{string="small","huge"}包含小/大字符串,{number=1,2,3,99}允许的值为1,2,3,and99numbers,{string{..5}="small","huge"}最多5个字符的字符串,仅包含单词“small”或“mage”。fieldvariablename.[field]带括号的字段名将变量定义为可选。=defaultValue可选参数默认值。可选字段的说明。/***@api{get}/user/:id*@apiParam{Number}id用户唯一ID。*//***@api{post}/user/*@apiParam{String}[firstname]用户的可选名字。*@apiParam{String}lastname强制姓氏。*@apiParam{String}country="DE"必填,默认值为“DE”。*@apiParam{Number}[age=18]可选年龄,默认18岁。**@apiParam(Login){String}pass只有登录的用户才能发帖。*在生成的文档中,将生成一个单独的*“登录”块。*/@apiSuccess@apiSuccess[(group)][{type}]field[description]成功返回参数。用法:@apiSuccess{String}firstname用户的名字。NameDescription(group)可选所有参数将按此名称分组。如果没有组,则设置默认成功200。您可以使用@apidefine设置标题和描述。{type}可选|返回类型,如{Boolean}、{Number}、{String}、{Object}、{String[]}字段|返回标识符(返回成功码)。description可选|字段的描述。/***@api{get}/user/:id*@apiSuccess{String}firstname用户的名字。*@apiSuccess{String}lastname用户的姓氏。*/带有(组)的示例,@apiSuccessTitle中的更多组示例:/***@api{get}/user/:id*@apiSuccess(200){String}firstname用户的名字。*@apiSuccess(200){String}lastname用户的姓氏。*/ExamplewithObject:/***@api{get}/user/:id*@apiSuccess{Boolean}active指定帐户是否处于活动状态。*@apiSuccess{Object}profile用户个人资料信息。*@apiSuccess{Number}profile.age用户年龄。*@apiSuccess{String}profile.image头像图像。*/带有数组的示例:/***@api{get}/users*@apiSuccess{Object[]}profiles用户配置文件列表。*@apiSuccess{Number}profiles.age用户年龄。*@apiSuccess{String}profiles.image头像图像。*/@apiSuccessExample@apiSuccessExample[{type}][title]example成功返回消息的示例,输出为预格式化的代码。Purpose:`@apiSuccessExample{json}Success-Response:{"content":"Thisisanexamplecontent"}`NameDescriptiontypeoptionalresponseformattitleoptionalexampleshorttitleexample详细示例,支持多行/***@api{get}/user/:id*@apiSuccessExample{json}成功响应:*HTTP/1.1200OK*{*"firstname":"John",*"lastname":"Doe"*}*/@apiError@apiError[(group)][{type}]字段[说明]成功返回参数。用法:@apiErrorUserNotFound。NameDescription(group)可选所有参数将按此名称分组。如果没有组,则设置默认错误4xx。您可以使用@apidefine设置标题和描述。{type}可选的返回类型,如{Boolean}、{Number}、{String}、{Object}、{String[]}字段返回标识(返回失败码)。description可选字段的描述。/***@api{get}/user/:id*@apiSuccess{String}firstname用户的名字。*@apiSuccess{String}lastname用户的姓氏。*/@apiErrorExample@apiErrorExample[{type}][title]example失败返回消息的示例,输出为预格式化代码。目的:`@apiErrorExample{json}错误响应:这是一个例子。`NameDescriptiontypeoptionalresponseformattitleoptionalexampleshorttitleexampledetailedexample,supportsmultiplelines/***@api{get}/user/:id*@apiErrorExample{json}Error-Response:*HTTP/1.1404NotFound*{*"error":"UserNotFound"*}*/参考Apidoc官网接口文档神器:apidocidoc快速生成在线文档,apidoc生成静态文件生成规则,原理分析,实践欢迎大家进群,参与讨论,共同进步,这是我们的准则,我们是前端一道靓丽的风景线,请加我vx:qiufeihong0203,欢迎关注飞鸿的掘金号拉你进群。原地址。转载版权声明请注明作者qiufeihong及本文地址:http://www.qiufeihong.top/technical-summary/apiDoc/