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增加配置
- def isWindows(){
- return org.gradle.internal.os.OperatingSystem.current().isWindows()
- }
- String apidocCmd = isWindows()?'apidoc.cmd':'apidoc'
- task apidocs(type:Exec, description:'執行生成apidoc文件操作'){
- workingDir './'
- def docCommand =[apidocCmd,'-o','./build/apidocs']
- commandLine docCommand
- }
5.2.2專案的根目錄增加檔案apidoc.json
- {
- "name":"springboot-sample介面文件",
- "version":"1.0.0",
- "description":"",
- "title":"springboot-sample",
- "url":"https://demo.test.com"
- }
5.2.3 Controller根據apidoc的規範增加註釋( http://apidocjs.com/)
- /**
- * @apiVersion 1.0.0
- * @api {GET} /group/front/getOutlinePaySuccessInfo 獲取支付成功資料
- * @apiGroup TransferAccount
- * @apiName getOutlinePaySuccessInfo
- * @apiParam (請求引數) {String} orderID 訂單號
- * @apiParam (請求引數) {String} partnerCode 渠道code
- * @apiParam (請求引數) {String} sign 簽名
- * @apiParamExample 請求引數示例
- * ?orderID=G0000168752925895356416&partnerCode=wyxx&sign=064d8cc51ed0957839e62f6684a4fe5c
- * @apiSuccess (響應引數) {String} accountName 收款人
- * @apiSuccess (響應引數) {Number} insuredNum 被保人數量
- * @apiSuccess (響應引數) {String} returnUrl 跳轉地址(可能為空)
- * @apiSuccess (響應引數) {Number} validStartDate 開始時間
- * @apiSuccess (響應引數) {Number} validEndDate 截止時間
- * @apiSuccessExample 響應示例
- * {"code":200,"msg":"成功","data":{"groupName":"微易測試","insuredNum":5,"returnUrl":"http://www.baidu.com","validStartDate":1524127875000,"validEndDate":1524127875000}}
- */
5.2.4 本地執行gradle apidocs,生成文件
5.2.5 其他:idea註釋模板使用
1)Settings-->editorLive Templates 新增模板
2)Abbreviation設定為apidoc
3)Context type設定為java:declaration
4)勾選Reformat according to stype
5)新增模板內容
6)Java檔案中輸入apidoc使用
- /**
- * @apiVersion 1.0.0
- * @api {method$END$} path title
- * @apiGroup name
- * @apiName name
- *
- * @apiParam (請求引數) {type} field description
- * @apiParam (請求引數) {type} field=defaultValue description
- * @apiParamExample 請求引數示例
- * example
- *
- * @apiParam (請求體) {type} field description
- * @apiParam (請求體) {type} field=defaultValue description
- * @apiParamExample 請求體示例
- * example
- *
- * @apiSuccess (響應引數) {type} field description
- * @apiSuccess (響應引數) {type} field description
- * @apiSuccessExample 響應示例
- * example
- *
- */
文章出自: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