1. 程式人生 > >API介面文件生成方案調研

API介面文件生成方案調研

1調研背景

目前存在以下情況:

1)一般開發人員更新介面後,沒有同時更新rap,rap上的介面定義普遍存在跟程式碼不一致的情況。

2)後端開發人員檢視別人介面,很難很快地知道介面的作用,以及介面入參和返回結果中每個欄位的含義。

3)rap上的mock資料功能不是特別好用。

2 調研結果

為了解決以上問題,調研了主流的三個工具,swagger2、spring rest docs、apidoc

基於以下原則對軟體做了篩選:

1)不允許使用註解(annotation),對程式碼侵入性比較強, 排除swagger2

2)不執行java程式就能生成文件,排除spring rest docs

3)可以給前端提供mock資料

所以採用了apidoc

參考文章:

 用spring Restdocs建立API文件   http://blog.csdn.net/forezp/article/details/71023510

 springboot整合swagger2,構建優雅的 Restful API http://blog.csdn.net/forezp/article/details/71023536

 springboot整合apidoc     http://blog.csdn.net/forezp/article/details/71023579

3 apidoc實施方案:

1) 測試環境部署統一的api文件伺服器,目錄按專案劃分,訪問路徑: http://docs. ***.com/api/專案名/

2) 開發人員按照apidoc的規則對介面寫詳細的註釋

3) 提交程式碼後,Jenkins執行gradle apidocs命令生成html檔案,然後上傳到伺服器對應的目錄中

4 專案參考案例

專案:[email protected]***.com:wy-serverside/insurance-2b-group.git

文件:http://docs. ***.cn/api/insurance-2b-group/

Jenkins任務:test_insurance_2b_group

apidoc便捷生成工具:http://tool.suiyiwen.com/apidoc/

5 後端開發本地環境配置

5.1 Apidoc安裝

首先需安裝nodejs,然後安裝apidoc(執行npm install apidoc –g)

5.2 專案配置

5.2.1 gradle專案的配置檔案build.gradle增加配置

  1. def isWindows(){
  2. return org.gradle.internal.os.OperatingSystem.current().isWindows()
  3. }
  4. String apidocCmd = isWindows()?'apidoc.cmd':'apidoc'
  5. task apidocs(type:Exec, description:'執行生成apidoc文件操作'){
  6. workingDir './'
  7. def docCommand =[apidocCmd,'-o','./build/apidocs']
  8. commandLine docCommand
  9. }

5.2.2專案的根目錄增加檔案apidoc.json

  1. {
  2. "name":"springboot-sample介面文件",
  3. "version":"1.0.0",
  4. "description":"",
  5. "title":"springboot-sample",
  6. "url":"https://demo.test.com"
  7. }

5.2.3 Controller根據apidoc的規範增加註釋( http://apidocjs.com/)

  1. /**
  2. * @apiVersion 1.0.0
  3. * @api {GET} /group/front/getOutlinePaySuccessInfo 獲取支付成功資料
  4. * @apiGroup TransferAccount
  5. * @apiName getOutlinePaySuccessInfo
  6. * @apiParam (請求引數) {String} orderID 訂單號
  7. * @apiParam (請求引數) {String} partnerCode 渠道code
  8. * @apiParam (請求引數) {String} sign 簽名
  9. * @apiParamExample 請求引數示例
  10. * ?orderID=G0000168752925895356416&partnerCode=wyxx&sign=064d8cc51ed0957839e62f6684a4fe5c
  11. * @apiSuccess (響應引數) {String} accountName 收款人
  12. * @apiSuccess (響應引數) {Number} insuredNum 被保人數量
  13. * @apiSuccess (響應引數) {String} returnUrl 跳轉地址(可能為空)
  14. * @apiSuccess (響應引數) {Number} validStartDate 開始時間
  15. * @apiSuccess (響應引數) {Number} validEndDate 截止時間
  16. * @apiSuccessExample 響應示例
  17. * {"code":200,"msg":"成功","data":{"groupName":"微易測試","insuredNum":5,"returnUrl":"http://www.baidu.com","validStartDate":1524127875000,"validEndDate":1524127875000}}
  18. */

5.2.4 本地執行gradle apidocs,生成文件

5.2.5  其他:idea註釋模板使用

1)Settings-->editorLive Templates 新增模板

2)Abbreviation設定為apidoc

3)Context type設定為java:declaration

4)勾選Reformat according to stype

5)新增模板內容

6)Java檔案中輸入apidoc使用

  1. /**
  2. * @apiVersion 1.0.0
  3. * @api {method$END$} path title
  4. * @apiGroup name
  5. * @apiName name
  6. *
  7. * @apiParam (請求引數) {type} field description
  8. * @apiParam (請求引數) {type} field=defaultValue description
  9. * @apiParamExample 請求引數示例
  10. * example
  11. *
  12. * @apiParam (請求體) {type} field description
  13. * @apiParam (請求體) {type} field=defaultValue description
  14. * @apiParamExample 請求體示例
  15. * example
  16. *
  17. * @apiSuccess (響應引數) {type} field description
  18. * @apiSuccess (響應引數) {type} field description
  19. * @apiSuccessExample 響應示例
  20. * example
  21. *
  22. */

文章出自:http://blog.suiyiwen.com/post/4

相關推薦

API介面生成方案調研

1調研背景目前存在以下情況:1)一般開發人員更新介面後,沒有同時更新rap,rap上的介面定義普遍存在跟程式碼不一致的情況。2)後端開發人員檢視別人介面,很難很快地知道介面的作用,以及介面入參和返回結果中每個欄位的含義。3)rap上的mock資料功能不是特別好用。2 調研結果

Swagger2整合springBoot,自動生成API介面

Swagger2整合springBoot 首先匯入jar包 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swa

Swagger 生成 PHP API 介面

Swagger 生成 PHP API 介面文件 標籤(空格分隔): php 1、概況 有同學反饋寫幾十個介面文件需要兩天的工作量, 隨著多部門之間的協作越來越頻繁, 維護成本越來越高, 文件的可維護性越來越差, 需要一個工具來管理這些介面的文件, 並能夠充當mock server給呼叫方使用。 有

整合swagger2生成Restful Api介面 webapi描述-swagger

整合swagger2生成Restful Api介面文件 swagger Restful文件生成工具 2017-9-30 官方地址:https://swagger.io/docs/specification/about/ 官方Github:https://github.com/swagger-

Spring專案整合apidoc生成api介面

一、背景需求  JavaWeb/spring專案寫成的api介面,需要自動生成api文件,甚至需要線上測試介面。考慮實現的方案有swagger,apidoc,spring rest docs。在之後的專案都有一一嘗試,最終還是覺得apidoc的方式比較合適,雖然有一些問題(針對線上

swagger 生成 PHP restful API 介面

需求: 為客戶端同事寫介面文件的各位後端同學,已經在各種場合回憶了使用自動化文件工具前手寫文件的血淚史. 我的故事卻又不同,因為首先來說,我在公司是 Android 組負責人,屬於上述血淚史中催死人不償命的客戶端陣營. 但血淚史卻是相通的,沒有自動化文件的日子,對介面

Swagger2+SpringMVC 生成API介面

簡單記錄一下配置的過程 - 匯入包 - 寫個配置類 - 在Controller層用註解進行註釋 - 通過一個URL就可以看到api介面文件 jar包

API介面說明

API文件規範要求 一、 寫明該介面的功能是什麼 二、 請求的URL是什麼 三、 請求方式是什麼(POST、GET、 DELETE、PUT、 PATCH等) 四、 引數是什麼,此處還需說明你的引數名、引數型別、是否必填、引數的簡單解釋 五、 請求成功時的響應內容(實際開發中,要與前端同事溝通

Swagger2 快速定義API介面

引入依賴 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0&

好用的API介面推薦總結

我是做服務端開發的,經常需要些介面文件,以前用過txt,word,感覺體驗太差了。網上找過很多,下面給大家總結一下。 易文件應該是我用過體驗最好的線上介面文件,專門優化過的http文件編輯和預覽頁面,編寫很方便,預覽很漂亮,還支援線上介面除錯。另外還有一些很方便的小功能,感覺用了就回不去了。 Showdo

如何優雅的“編寫”api介面

前言  今天我需要把之前寫的介面整理成文件,老大給了意見用swagger搞,我像發現新大陸一樣的興奮,迫不及待得去“佔有”它。   Swagger很容易上手,我花了十幾分鍾就搞定了。正好接著之前的如何優雅的格式化介面,這裡再說一下SpringBoot整合Swagger的簡單過

Spring Cloud Zuul中使用Swagger彙總API介面

有很多讀者問過這樣的一個問題:雖然使用Swagger可以為Spring MVC編寫的介面生成了A

Swagger自動介面生成框架————springboot整合swagger總結

swagger簡介: swagger是一款開源的api介面文件生成工具。 Swagger的專案主頁:https://swagger.io/    目前比較流行的做法是在程式碼中加入swagger相關的註釋,然後,利用小工具生成swagger.json或者swagger.y

bigemap百度離線地圖API介面介面呼叫例項

    1.當前版本支援百度電子地圖瓦片和百度衛星地圖瓦片; 2.效果預覽演示地址:http://www.bigemap.com/bmap  後臺編輯體驗地址:http://www.bigemap.com/bmap/ 可隨意在後臺新增/修改標註

.NET Core使用swagger進行API介面管理

一、問題背景   隨著技術的發展,現在的開發模式已經更多的轉向了前後端分離的模式,在前後端開發的過程中,聯絡的方式也變成了API介面,但是目前專案中對於API的管理很多時候還是通過手工編寫文件,每次的需求變更只要涉及到介面的變更,文件都需要進行額外的維護,如果有哪個小夥伴忘記維護,很多時候就會造

【流程規範】API介面規範

介面名稱 前置主動還款申請(/payBill) 介面描述 返回格式:json 請求方式:GET/ POST 介面備註:根據傳入的key和qq號碼發起還款的申請 請

swagger-ui教程 構建api介面工具

1.在我第一次開發app後端的時候,使用的word文件,就是我先將所有資料格式定義好,會返回什麼樣的資料寫好。前端人員照這個來進行開發。貼一張圖吧: PS:存在的問題:①介面改動時,不易被識別。②維護困難,不便於查詢。③前端開發不能進行測試。(如果還要寫

介面管理方案

Restful風格文件管理工具的選擇依據: 團隊協作修改API介面 生成word、pdf、html等形式的介面文件 可以內線搭建自己的API介面文件管理系統 最好能夠內線進行介面的測試工作 文件管理和自動化介面測試方案 方案一、Swagger 方

Swagger UI教程 API 神器 搭配Node使用 web api 介面 mvc介面

兩種方案 一、Swagger 配置 web Api 介面文件美化 二、通過NodeJS 釋出Swagger UI 配置api 文件 先說一下簡單的 Swagger 配置 web Api  Swagger-UI本身只提供線上測試功能,要整合它還需要告訴它本專案提供的各

推薦一個公司內部介面管理方案

我覺得比較適合小公司,尤其適合開發app的小公司。 文件內容用markdown語法寫,然後提交到自己的git伺服器(基於gitolite搭建的)。 然後在伺服器上部署一個java的web應用(就是我要推薦噠,我們就部署在隨便一個tomcat裡了),它用於將md檔案展示成ht