一直很好奇专门写接口同事的工作,于是趁着手边工作中的闲暇时间,特地看看神奇的接口文档怎么摆弄。

总览:

这是基于thinkjs(3.0),使用swagger editor编写,实现功能性测试的接口文档。

先了解一些必要的知识吧:

1.)什么是Swagger?

Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件;是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。Swagger 让部署管理和使用功能强大的API从未如此简单。(https://swagger.io/

Swagger的目标是为REST APIs 定义一个标准的,与语言无关的接口,使人和计算机在看不到源码或者看不到文档或者不能通过网络流量检测的情况下能发现和理解各种服务的功能。当服务通过Swagger定义,消费者就能与远程的服务互动通过少量的实现逻辑。类似于低级编程接口,Swagger去掉了调用服务时的很多猜测。

2.)Swagger Editor

可以直接使用在线编辑器https://editor.swagger.io/(左边编辑,右边实时效果),方便我们直接写文档,并将其转成所需的json或者yaml格式。

3.)为什么使用?

①支持API自动生成同步的在线文档;②这些文档可用于项目内部API审核
;③方便测试人员了解API。

开始吧:

1.)建thinkjs项目:

特别说明:自从thinkjs升级到3.0后,自己就没有好好看看其中有什么变化,直至现在重新看的时候才发现3.0较2.0变化还挺大的,不仅是文件目录变化,框架底层也发生了变化,关于这些还是觉得看官网会更清晰些:https://thinkjs.org/

2.)关于swagger的一些配置

https://github.com/swagger-api/swagger-ui中将dist文件夹copy出来,在新建项目中根目录下新建一个static文件夹,并将dist文件夹放进去

        注意:其中test.yaml文件是我在swagger editor中写好的接口文档转成的yaml格式的文件,然后放在dist目录下的;因此后来的你们也要进行类似的操作,在swagger editor中写好文档,转成所需要的格式再放进dist中,然后将dist/index.html中的url改成你等文件中test.yaml文件所在路径,即

然后浏览器访问:(http://ip:8360/dist/test.yaml)便可以看见你的接口文档;(http://127.0.0.1:8360/dist/index.html)就可以看见带有swagger ui 的效果啦:


疑难杂症:

其实回头想想,做出这样的效果并不算难,但就是因为自己了解的太少。而在进行跨域访问的时候,还需要安装另外一个组件:https://github.com/koajs/cors,在src/config/middleware.js中:

const cors = require('@koa/cors');
...
{
handle: cors,
options: {}
},
...

        But:有个问题:把thinkjs项目用vscode打开后,编译就出错,但是不影响运行(自己有点强迫症,每次看见这样就很想解决掉,无奈又没找出问题,也许恰巧你能解决,3ky~)

结尾:

兴趣是最好的老师。因为喜欢,所以写起来也是满满的喜悦。最后感谢一直不吝赐教的晁州大神(http://www.cnblogs.com/vipzhou/)——昔日好同事,今日好朋友。

2018,新一年的开始——叶叶Yeah开启疯狂奔跑模式吧!

thinkjs+swagger Editor的更多相关文章

  1. swagger editor使用

    swagger editor使用 swagger是一套开源的API设计工具,包括Swagger UI,Swagger Editor等. Swagger Editor 其中Swagger Editor是 ...

  2. Error generating Swagger server (Python Flask) from Swagger editor

    1down votefavorite   http://stackoverflow.com/questions/36416679/error-generating-swagger-server-pyt ...

  3. window安装swagger editor

    1.下载 nodejs,并安装 2. 下载swagger editor并安装 2.1 git clone https://github.com/swagger-api/swagger-editor.g ...

  4. Swagger UI及 Swagger editor教程 API文档搭配 Node使用

    swagger ui 是一个在线文档生成和测试的利器,目前发现最好用的.为啥好用呢?打开 demo,支持API自动生成同步的在线文档些文档可用于项目内部API审核方便测试人员了解 API这些文档可作为 ...

  5. Swagger Editor Linux安装(全新环境)

    查看内核版本 cat /proc/version cat /etc/redhat-release 查看系统是32位还是64位方法总结getconf LONG_BIT 安装相关工具 yum instal ...

  6. Web开发笔记 #07# Swagger Editor

    Swagger Editor是一款可以用yaml格式进行RESTful API设计.可视化.测试的工具,并且能够实时看到自动生成的文档.效果大概是这样的↓ 根据官方网站介绍,如果是团队的话,建议用在线 ...

  7. Swagger Editor 本地搭建

    看了很多文章,怎么本地安装都比较乱,一番折腾,最后终于成功本地搭建Swagger Editor,记录如下(Windows 7): 进入命令行: (1)cd E:\Learning\AWS (2)git ...

  8. Swagger Editor本地安装

    一:安装Node JS 二:下载源码swagger-editor源码,解压 下载地址:https://github.com/swagger-api/swagger-editor 三:在解压目录下运行进 ...

  9. 查看API工具 https://editor.swagger.io/

    The base URL for the API is:    https://api.cloud.nalantis.com/api/ The OpenAPI documentation is ava ...

随机推荐

  1. android 获取配置文件 相对路径

    --src --com.example.Demo1 --IndexActivity.class       --test.txt 在IndexActivity.class 获取test.txt中的文件 ...

  2. 关于Unity中常用的数据结构和JSON处理(专题三)

    数据结构通俗来讲就是用某个对象去存储数据集合,比如要存储100个整数,要用什么样的数据类型能把它们存储好. Jason处理,服务器对接,配置文件的使用,Unity和Jason之间相互的转换. Arra ...

  3. android地址位置

    有精度纬度确定地理位置 latitude: 23.1352888---longitude: 113.3297445 调用Google API接口: URL: http://maps.google.cn ...

  4. c语言数据类型、运算符和表达式

    数据类型 1.基本数据类型: 基本数据类型最主要的特点是,其值不可以分解为其他类型.也就是说,基本数据类型是 自我说明的 2.构造数据类型: 构造数据类型是根据已定于的一个或多个数据类型用构造的方法来 ...

  5. (笔记)Mysql命令create table:创建数据表

    create table命令用来创建数据表. create table命令格式:create table <表名> (<字段名1> <类型1> [,..<字段 ...

  6. Python中的高级turtle(海龟)作图(续)

    四.填色 color 函数有三个参数.第一个参数指定有多少红色,第二个指定有多少绿色,第三个指定有多少蓝色.比如,要得到车子的亮红色,我们用 color(1,0,0),也就是让海龟用百分之百的红色画笔 ...

  7. ASP.NET后台输出js脚本代码

    利用asp.net输出js我们大多数都会直接使用Respone.Write()然后根js格式的代码,再在页面调用时我们直接这样是完全可以实现的,下面我来给大家介绍另一种方法 我是我最初的想法以下是代码 ...

  8. interproscan 软件对序列进行GO 注释

    interproscan 软件实际上将对输入的查询序列和interpro 数据库中的序列去比对,将比对上的序列对应的GO信息作为查询序列的GO注释 在interpro 数据库中,每条蛋白质序列有一个唯 ...

  9. C# Byte[]、Image、Bitmap 之间的相互转换

    //byte[] 转图片 public static Bitmap BytesToBitmap(byte[] Bytes) { MemoryStream stream = null; try { st ...

  10. PHP中全局变量的使用global和$GLOBALS[]

    From: http://blog.csdn.net/happyqyt/article/details/7219889 用PHP开发项目,不可避免的会使用到全局变量,比如一些网站的配置信息,全站通用, ...