1. 程式人生 > >Node.js +Swagger Editor + Swagger-UI 環境搭建

Node.js +Swagger Editor + Swagger-UI 環境搭建

安裝node.js

點選 安裝器 node-v6.11.1.pkg 開始安裝

一路下一步,安裝完成

node.js安裝後驗證

 npm -v 
 node -v 

下載Swagger-Editor

複製最新 release下載地址

在終端下載
wget https://github.com/swagger-api/swagger-editor/archive/v3.0.17.tar.gz

下載完成,後解壓

tar -zxvf v3.0.17.tar.gz

安裝node.js HttpServer

npm install -g http-server

安裝完成如下圖

啟動Swagger-Editor專案

http-server swagger-editor 以8080埠啟動專案
http-server –p 8082 swagger-editor 指定埠啟動專案

http-server -p 8081 swagger-editor-3.0.17

瀏覽器訪問

下載swagger-ui

可以直接 git clone
git clone https://github.com/swagger-api/swagger-ui.git

也可以下載最新的release

安裝 express

建立一個空資料夾node_app
mkdir node_app
初始化 node ,建立package.json檔案()

cd node_ap
~/node_app ✗ >npm init
// 下面的看你心情填寫
name: (node_app) node_app
version: (1.0.0)
description:
entry point: (index.js)
test command:
git repository:
keywords:
author:
license: (ISC)

安裝 express
~/node_app git:(master) ✗ >npm install express --save

建立 index.js

~/node_app git:(master) ✗ >vim index.js


把下面程式碼貼如 index.js 中

var express = require('express');
var app = express();
app.get('/', function (req, res) {
  res.send('Hello World!');
});

app.listen(3000, function () {
  console.log('Example app listening on port 3000!');
});

在 node_app 中建立空目錄 public

  ~/node_app git:(master) ✗ >mkdir public
  ~/node_app git:(master) ✗ >cd public

修改路由

  ~/node_app/public git:(master) ✗ >vim ../index.js

//在檔案第三行插入下面這句話
app.use('/static', express.static('public'));

把下載好的Swagger UI 檔案中dist 目錄下的檔案全部複製到 public 資料夾下。

修改index.html文件檔案

將index.html首頁中的javascript程式碼中的url修改為 /static/test.json

重啟node伺服器

~/node_app git:(master) ✗ >node index.js

瀏覽器開啟 http://localhost:8082/static/#/

接下來就是重點學習一下 文件編寫的語法了

應用git WebHook功能自動通知阿里雲伺服器更新程式碼

同樣可以將該專案部署到阿里雲伺服器,將yaml檔案用git管理。應用coding或github等git網站的webhook功能,向伺服器傳送一個http請求,讓伺服器自動執行 git pull命令,更新程式碼,小拉以coding.net為例

1.在伺服器建好了一個shell指令碼 用於執行git pull命令 命名為gitpush.sh h 新增如下內容

#!/bin/bash
cd /root/swagger;git pull

注意修改可執行許可權 sudo chmod 744 gitpull.s
2. 寫一個java web應用,例用java呼叫shell命令,以springboot為例

 @RequestMapping("/run_pull")
    public String runGitPull()
    {

        try {
            String shpath="/root/swagger/gitpull.sh";
            Process ps = Runtime.getRuntime().exec(shpath);
            ps.waitFor();

            BufferedReader br = new BufferedReader(new InputStreamReader(ps.getInputStream()));
            StringBuffer sb = new StringBuffer();
            String line;
            while ((line = br.readLine()) != null) {
                sb.append(line).append("\n");
            }
            String result = sb.toString();
            System.out.println(result);
        }
        catch (Exception e) {

            e.printStackTrace();
            return "git pull faild!" + e.toString();
        }

        return "git pull ok";
    }
  1. 在coding.net 對應的swagger專案中新建webhook


將之前將的web請求地址放進去
4. 這樣在本地swagger.yaml檔案 git push時,就會自動更新到了阿里雲伺服器