Sawgger2 接口在線化文檔生成 教程

前言

在做前後端分離的項目過程中,後端的接口文檔更新維護的工作量很大。開發過程中接口發生變更,不僅要修改接口代碼,還需要及時的修改接口文檔。傳統接口文檔都是用wordexcel進行記錄編輯,而且還需要配合接口調用工具或到瀏覽器中進行接口的調用測試。這時候使用這套可視化,規範化的自動接口生成文檔工具就會更加方便開發測試了。在工具頁面中可以直接填寫輸入參數進行接口調用,不用再自己複製url鏈接去測試接口了。

 

總體思路

swagger-editor中編寫好了api文檔,再放到swagger-ui中去預覽,同時進行調用測試。

 

具體實現

一、sawgger editor編輯

1.swagger-editor  環境搭建

1)安裝node、npm、http-server

2)從官網 https://github.com/swagger-api/swagger-editor 下載swagger editor並解壓到任意文件夾

(3)cmd命令行cd到swagger editor解壓路徑,然後輸入 http-server 命令顯示啓動成功

(默認爲8080端口,修改端口 運行命令 http-server –p 端口號

4)訪問: http://127.0.0.1:8080

 

2.成功運行sawgger editor後,在左側代碼欄內進行編輯,右側可以看效果也可以進行接口的調試

 

接口測試:右側展示區內點擊“Try this operation”按鈕,輸入參數並點擊“Send Request”即可看到接口調用結果

 

3.編輯完成後下載json文件(生成文件swagger.json,後續需要放到展示的前端項目中)

 

二、sawgger UI展示

1.swagger-ui  環境搭建

1)進入官網下載ui項目,並解壓

https://github.com/swagger-api/swagger-ui/tree/2.x

(2)進行nodejs配置

mkdir node_app 新建node_app文件夾,

cd node_app 初始化node,輸入好信息後會自動創建package.json文件

npm init 初始化命令,出現如下信息,填的地方可以隨便寫,也可以不寫

(3swagger-ui中的dist文件夾拷貝到node_app下:

(4)安裝express

npm install express 如果出錯可以去nodejs安裝目錄進行安裝

(5)創建index.js

echo.>index.js 創建index.js

並將如下代碼寫入該js中:

var express = require('express');

var app = express();

app.use('/root', express.static('dist'));

app.get('/', function (req, res) {

  res.send('Hello World!');

});



app.listen(3000, function () {

  console.log('Example app listening on port 3000!');

});

 

2.更新json文件

1)找到項目的dist文件夾內的index.html代碼文件

2)更新代碼文件中jsonurl

url = "http://petstore.swagger.io/v2/swagger.json";  -->  url = "/root/swagger.json";

3)將Sawwger Editor中生成的swagger.json文件,放置index.html同級路徑下

(每當接口有所更新,則需要重新生成該文件)

3.運行sawgger UI進行展示

1cmd命令框轉到sawwger ui項目所在的路徑,執行命令node index.js 運行項目

 

2)瀏覽器輸入地址 http://127.0.0.1:3000/root/index.html 即可運行查看(index.js中代碼爲3000端口,可自行修改)

 

 

*注:swagger-editor參數詳情

Swagger API Spec包含以下部分:

  • swagger,指定swagger spec版本,2.0
  • info,提供API的元數據
  • tags,補充的元數據,在swagger ui中,用於作爲api的分組標籤
  • host,主機,如果沒有提供,則使用文檔所在的host
  • basePath,相對於host的路徑
  • schemesAPI的傳輸協議,httphttpswswss
  • consumesAPI可以消費的MIME類型列表
  • producesAPI產生的MIME類型列表
  • pathsAPI的路徑,以及每個路徑的HTTP方法,一個路徑加上一個HTTP方法構成了一個操作。每個操作都有以下內容:
    • tags,操作的標籤
    • summary,短摘要
    • description,描述
    • externalDocs,外部文檔
    • operationId,標識操作的唯一字符串
    • consumesMIME類型列表
    • producesMIME類型列表
    • parameters,參數列表
      • name,名字
      • description,描述required,是否必須
      • in,位置
        • Path
        • Query
        • Header
        • Body
        • Form
      • (對於Body類型的參數)
        • schema,數據類型,可以詳細描述,也可以引用definition部分定義的schema
      • (對於Body類型以外的參數)
        • type,類型
        • format,數據格式
        • allowEmptyValue,是否允許空值
        • items,對於Array類型
        • collectionFormat,對於Array類型
        • default,缺省值-默認值
    • responses,應答狀態碼和對於的消息的Schema
    • schemes,傳輸協議
    • deprecated,不推薦使用
    • security,安全
  • definitions,定義API消費或生產的數據類型,使用json-schema描述,操作的parameterresponse部分可以通過引用的方式使用definitions部分定義的schema
  • parameters,多個操作共用的參數
  • responses,多個操作共用的響應
  • securityDefinitions,安全scheme定義
  • security,安全聲明
  • externalDocs,附加的外部文檔

參數詳情參考自 <https://www.cnblogs.com/jocongmin/articles/7082363.html>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章