API文档自动生成

本文主要讲述自动化API文档生成——apidoc。网上有几个篇文章都只是介绍apidoc的,具体怎么在自己的项目中使用以及与其他配合使用都是没介绍的。最近开始玩服务器,了解到了有Windows与Linux之间共享文件的方法,就是samba。然后具体和apidoc结合起来非常好用,所以本文就当做笔记来把它记录下来了
_

apidoc简介

  apidoc是node的一个插件,它的功能就是能让把我们的代码注释生成api文档。它支持php java javascript python等多中语言。因为写接口的同学通常很烦写完接口还得写文档,文档更新又麻烦。apidoc不仅支持项目的版本,也支持api的版本。在我所接触过的文档生成工具里面,这个是我感觉比较好用的。
_

apidoc的安装

  apidoc是node的一个插件,那么它的安装就依赖node。node的具体安装我这里就不详细说了,去node官网下包,解压,编译然后安装。直接执行:

npm install apidoc -g 

_

samba的安装

  samba的安装也很简单,本人用的是CentOS,我直接执行

yum install samba

就安装好了。
_

samba的配置

        [public]comment = Public Stuffpath = /share/doc  你需要共享文件夹的路径browseable = yes  可浏览性 guest ok = yes  是否允许访客public = yes  是否可上传writable = yes  是否可写

我自己装的时候也都是这么配置的,注意,这个samba需要你关闭你的防火墙,还得把你共享的目录赋予777的权限(貌似755就够了,我直接给了777)。我这边还遇到过一个很坑爹的问题,就是这样配置了,用Windows访问这个共享目录的时候,要求我输入用户名和密码。其实主要还得把上面的

security = user

改成

security = share

samba也是支持用户管理的,就是可以分配账号密码的,具体的就不展开介绍了。
_

apidoc的使用

  例如我们在代码里面下了这样的一段注释:

/*** @api {get post} /brand/:id/:name/:new 这里中括号里面填的的是请求方式(GET POST OPTION DELETE等),后面填的是路由* @apiGroup brandList API接口所在的组名称* @apiName  brands  API接口名称* @apiVersion 1.0.1 API接口版本* @apiDescription  API接口的描述** @apiParam (入参) {Number{1-9999}}()这个括号里面的天的参数的组,括号里面相同的会被放在同一个表格里面 id=0 请求参数 大括号里面填的是参数类型 里面的大括号表示值的范围 后面就是参数的名称和默认值* @apiParam (入参) {String="a","b","c"} name 品牌名称,等于号表示允许值* @apiParam (入参) {Boolean} new * @apiParam (入参) {Number} [test] 如果参数套上[]这样的中括号,表明这个值是个可选的值** @apiParamExample {json} 接口返回值* {*     "code" : 0,*     "message" : "success",*     "data" : {*         "result" : "ok"*     }* }* @apiSampleRequest  下面就是一个模拟请求器,可以帮我们调试接口*     http://www.work.dev**/

基本上用这些已经足够了,其他的用法可以参考它的官网:http://apidocjs.com/
_

生成apidoc

  假如我在我的控制器里面写了这样一段注释:

 /**
* @api {GET} /user_info 获取用户信息接口
* @apiGroup User
* @apiVersion 2.0.0
* @apiDescription 获取用户信息
*
* @apiParam (入参) {String} token 登录成功后客户端返回的token
*
* @apiSuccessExample Success-Response:
*  {
*      "code": 0,
*      "message": "ok"
*      "data": {
*           "name": "1",//状态 0:启用 1:停用
*           "role": "1",//1管理员,0是普通员工
*           "sex": "1",//1表示男性,2表示女性
*      }
*  }
*
* @apiSampleRequest
* http://api.test.com/user_info
*
*/

先cd到项目里面
然后执行这样的语句:

apidoc -i app/Http/Controllers -o \\115.28.231.211\public\

因为我samba共享的是这样一个文件夹,并且在这个里面放文档。然后我们来看下生成的结果

这时候我们直接点击index.html可以直接看到这样的静态页面:

_

后话

  到这里,我们就已经很方便的能运用apidoc了,我们可以自己直接写好接口的时候直接写注释,一句命令写到开了samba的服务器上,然后直接访问静态页面,如果不想这样赤裸裸的访问静态页面,可以用node或者nginx直接绑上去,这里就不继续展开讲了。
_

后续补充

  其实在使用中的时候会发现一些很坑爹的问题,就是GroupName没法用中文,但是其他地方可以用中文。毕竟这个是国外大佬发明的,不是国人的产物,有存在这样的问题也在所难免。我不断的搜,发现github上有人给他提issure。也有给出了解决方案,apidoc的语法其实是支持引用的,所以我们可以这样定义

/*** @apiDefine name 测试中文*/

然后我们怎么使用呢。可以直接@apiUse name 也可以直接在注释里面写name,这样就可以使用中文了。

  <font color='red'>这个东西唯一让我不爽的就是有可能一大段注释只是为了生成接口文档!!!其它真的很好用</font>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/456877.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习笔记之SVM(SVR)算法

学过SVM后&#xff0c;看了那么多别人的文章&#xff0c;是时候自己总结一波了。权当写的笔记供自己日后再回顾吧。 PS:结合自己在工作过程中&#xff08;我这里用SVR做股票预测&#xff09;用到的知识来写的&#xff0c;不会很全面&#xff0c;若有些知识这里没提及读者可自行…

[转]基于图的机器学习技术:谷歌众多产品和服务背后的智能

近来机器学习领域实现了很多重大的进展&#xff0c;这些进展让计算机系统具备了解决复杂的真实世界问题的能力。其中&#xff0c;谷歌的机器学习又是怎样的 &#xff1f; 近来机器学习领域实现了很多重大的进展&#xff0c;这些进展让计算机系统具备了解决复杂的真实世界问题的…

安装mysql后在安装目录下只有my-default.ini没有my.ini文件 解决-The MySQL server is running with the --secure-file-priv

WIN10 系统环境 安装mysql后在安装目录下只有my-default.ini没有my.ini文件 。 mysql报错 ---------- The MySQL server is running with the --secure-file-priv option so it cannot execute this statement -------- 但是更改或想要查找配置文件就需要如下操作 在 安装…

loewe测试软件,实测Loewe三角包 最轻的小包最贴心的设计

原标题&#xff1a;实测Loewe三角包 最轻的小包最贴心的设计导语&#xff1a;每周一期的“包治百病”又跟大家见面来啦&#xff01;“包治百病”全方位评测包包的容量、重量、背法、在不同身高妹子身上的效果、各种惊人的小细节以及可能存在的问题&#xff0c;为有意购买这些包…

hadoop集群的搭建(分布式安装)

集群 计算机集群是一种计算机系统&#xff0c;他通过一组松散集成的计算机软件和硬件连接起来高度紧密地协同完成计算工作。集群系统中的单个计算机通常称为节点&#xff0c;通常通过局域网连接。集群技术的特点&#xff1a;1、通过多台计算机完成同一个工作。达到更高的效率 2…

解决:Error establishing a database connection阿里云修改数据库密码

今天闲来无事想把所有的二级密码改成一致的&#xff0c;所以就把阿里云的mysql数据库的密码改了&#xff0c;结果&#xff0c;打开页面报错了&#xff0c;下边的截图是我问题解决后&#xff0c;重新复现的。如果修复这个问题后wordpress登录页面白板&#xff0c;此时不要着急&a…

机器学习各算法思想(极简版)

读到的一篇不错的文章&#xff0c;拿来和大家分享一下。 转自–头条公众号–极数蜗牛 &#xff08;1&#xff09;线性回归 回归最早是由高尔顿研究子女身高与父母身高遗传关系提出的&#xff0c;发现子女平均身高总是向中心回归而得名。其实“一分辛苦一分才”中就蕴含了线性…

斯坦福计算机录取难吗,申请斯坦福究竟有多难? 什么样条件的人才能被斯坦福录取?斯坦福大学直播!...

原标题&#xff1a;申请斯坦福究竟有多难&#xff1f; 什么样条件的人才能被斯坦福录取&#xff1f;斯坦福大学直播&#xff01;申请斯坦福究竟有多难&#xff1f; 什么样条件的人才能被斯坦福录取&#xff1f;斯坦福大学直播&#xff01;西海岸小哈佛之称的斯坦福大学&#xf…

解决:building 'twisted.test.raiser' extension安装scrapy报错

解决&#xff1a;building twisted.test.raiser extension error: Microsoft Visual C 14.0 is required. Get it with "Microsoft Visual C Build Tools": https://visualstudio.microsoft.com/downloads/ 安装scrapy报错&#xff0c;在Twisted安装部分 解决方案…

Linux配置网络出现Eroor adding default gateway的解决方案

最近在学习有关大数据方面的东西&#xff0c;刚开始要搭建模拟的虚拟机集群。用的是Minimal CentOS6.7版本Linux下的系统。因为我要为各个虚拟机设置静态IP&#xff0c;所以就参考网上博客说的进行如下操作: 一、安装完系统后先配置网络&#xff1a; cd /etc/sysconfig/netwo…

揭秘8大自媒体平台注册方法,通过率百分之九十

写在前面&#xff1a;准备材料&#xff1a;手机号&#xff0c;邮箱&#xff0c;手持照&#xff0c;辅助材料(非必选项)&#xff0c;邀请码(非必选项)。辅助材料万能公式&#xff1a;方法①新浪博客16级博客发8篇相关的文章&#xff0c;昵称、描述、头像都与所注册自媒体号对应&…

计算机表格怎么求面积,在wps表格中怎么把数据生成面积图?

面积图强调数量随时间而变化的程度&#xff0c;适用于显示有限数量的若干组数据。可以利用面积图来分析销售的数据。在这里我用3种品牌的手提电脑在 2010年四个季度的销售量作为数据源&#xff0c;使用“堆积面积图”来显示各种手提电脑销售量所占大小并随时间变化的趋势。那么…

机器学习如何解决问题

原文 http://tech.meituan.com/mt-mlinaction-how-to-ml.html 前言 前言 随着大数据时代的到来&#xff0c;机器学习成为解决问题的一种重要且关键的工具。不管是工业界还是学术界&#xff0c;机器学习都是一个炙手可热的方向&#xff0c;但是学术界和工业界对机器学习的研究…

Linux中python2和python3的pip设置 及清华安装源

启动python2&#xff0c;我们可以直接在命令行输入&#xff1a;python2 启动python3&#xff0c;我们可以在命令行输入&#xff1a;python或者python3. 但是pip没有设置的话&#xff0c;在命令行输入 pip --version 或者 pip2 --version&#xff0c;指向的都是python2. 现在…

java 循环 基本类型

1.基本if选择结构 格式&#xff1a;if&#xff08;布尔表达式&#xff09;{ 表达式结果为true&#xff0c;则执行此代码块 } 例&#xff1a;if(week <5 ){ System.out.println(“上班”) } 2.if else结构 格式&#xff1a;if(布尔表达式){ 表达式结果为true&#xff0c;则执…

计算机最佳参数,对使用者来说,学会计算机性能参数提取,给出性能评价很重要...

对计算机进行系统信息提取&#xff0c;并且给出性能评价&#xff0c;可以这样做先看思维导图&#xff1a;对计算机进行系统信息提取&#xff0c;并且给出性能评价&#xff0c;可以通过软件测试实现&#xff01;一、 关于硬件健康的问题&#xff0c;避免买到二手配件。硬盘的使用…

word如何在任意页开始添加页码

第一步&#xff0c;将光标定位到需要插入页码的前一页末尾。就是说&#xff0c;如果你想从第二页开始添加页码&#xff0c;那么你就将光标定位到第一页末尾&#xff0c;如图&#xff1a; 然后按照图中标出的提示&#xff0c;选择“页面布局”选项卡&#xff0c;点击“分隔符…

跨越请求,关于后端session会话丢失的解决办法(转载)

目前使用前后端分离的模式开发&#xff0c;后端提供跨域接口、前端jsonp调用&#xff0c;绑定数据&#xff0c;但是在该站点下有个人中心模块存在的情况下&#xff0c;服务端的session会话会被跨域请求覆盖改掉 大家都知道tomcat使用cookie中jsessionid来区分客户端session会话…

钉钉开发笔记(一)

钉钉开发分为&#xff1a;1、移动客户端。2、PC端。3、服务端。三个平台的开发。 1、移动端&#xff1a;面对钉钉手机用户和企业用户。 2、同上主要面向PC端的用户和企业。 3、服务端&#xff0c;用于用户和企业内部管理的平台方向&#xff0c;例如OA网站。 本人主要从事移动端…

import导入模块

面试题: import module与from module import * 两种模块导入有何区别 1. import module 引用共享变量时&#xff0c;要使用module.变量名,而from module import * 直接使用变量名即可 2. import module方式 本地不会创…