专栏首页西安-晁州添加swagger api文档到node服务

添加swagger api文档到node服务

swagger,一款api测试工具,详细介绍参考官网:http://swagger.io/ ,这里主要记录下怎么将swagger api应用到我们的node服务中:

1、任意新建node api项目,使用npm init即可

2、安装依赖:

cnpm i express body-parser --save

其中express作为api框架,当然你也可以使用其它的,比如thinkjs、koa、koahub、阿里的egg等等(框架只是一种工具),body-parser用来解析json格式的请求。

3、新建index.js作为服务类,简单代码如下:

var express = require("express");
var app = express();
var routes = require('./routes/index');
var bodyParser = require('body-parser');

app.use(bodyParser.json()); // for parsing application/json
app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded

app.use("/static", express.static("public")); //配置swagger文档


routes(app);

app.listen(3000, function() {
    console.log("server listening at port 3000");
});

这里的话,我们设置静态目录为public,路由文件为routes文件夹下的index.js文件,那么响应地创建两个文件夹,分别为:public(用来存放swagger文件)、routes(存放各种路由请求)。

4、下载swagger必须文件并解压到public下

下载地址为:https://github.com/swagger-api/swagger-ui 这里取dist文件夹下的所有文件直接放入public里面,在打开该网址:http://editor.swagger.io/#!/ 点击如下下载json配置文件(命名随意):

这样一来,public目录下面的文件结构类似如下:

5、修改public目录下的index.html文件的url为刚才的json文件名称

6、启动node服务,打开public下的index.html,在浏览器端查看效果

最后:

1、想要api文档显示如何内容可直接编辑下载来的json文件即可,这里推荐一个网站:http://www.sosoapi.com/ 可以直接在线编辑swagger api文档,支持在线预览、导出等功能,比较方便

2、使用swagger在线测试的时候一定要主要跨域问题,否则可能导致实际已经发送了请求但是浏览器查看时却显示“no content”,这时浏览器的concole一定打印了跨域失败提示,解决有很多种,比如:服务端设置跨域请求头信息、浏览器允许跨域等

3、demo地址戳这里:https://github.com/caiya/node_app

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • jenkins学习之自动打包构建nodejs应用

    上一节记录了下jenkins在centos下的安装,这节继续,说下怎么使用jenkins和nodejs进行自动打包更新服务。 创建任务 创建任务比较简单,这里我...

    用户1141560
  • 使用bee自动生成api文档

    beego中的bee工具可以方便的自动生成api文档,基于数据库字段,自动生成golang版基于beego的crud代码,方法如下: 1、进入到gopath目录...

    用户1141560
  • nodejs初印象

    初学Nodejs,特意在此记录学习过程,算是对这段时间的一个summary吧,相互勉励,共同进步嘛,Now Begin: 1、什么是nodejs nodejs ...

    用户1141560
  • Spring全家桶之SpringSecurity

    SpringSecurity 是一个高度自定义的安全框架。利用 SpringIoC/DI和 AOP 功能,为系统提供了声明式安全访问...

    时间静止不是简史
  • 猫狗队列

    HelloVass
  • ES6基础语法之箭头函数

    ES6直接在参数中=默认值就解决,上述中只是出一个参数的默认值,多个参数下ES6的便利性毋庸置疑!

    十月梦想
  • 【记一次pull request的惨痛教训】不可见的分隔符之Zero-with-space

    我在修改 ctf-wiki 目录后进行 mkdocs build 去生成索引目录的时候报错:

    Angel_Kitty
  • 提升前端效率的十款工具(上篇)

    可以通过npm全局安装一个http-server,当需要开启服务的时候, 通过命令行,跳转到需要开启服务的文件夹下, 开启服务即可!

    zhaoolee
  • fastjson存在乱序的问题

    通常来讲,在使用json数据格式时一般不需要要求数据有序。但凡事都有例外,针对查询时序数据这样一个场景,就必须要求服务器端返回的数据是按时间有序的,否则前端在进...

    2Simple
  • 如何通俗地解释多云

    什么是多云?它与混合云有何不同?多云有哪些用例和安全问题?人们讨论多云策略需要通俗易懂的方法。

    CloudBest

扫码关注云+社区

领取腾讯云代金券