為我開發的API新增華麗的外衣
在日常開發中,最容易被吐槽的就是程式碼寫的爛,沒有註釋鬼知道你這個是什麼意思啊?
另一個就是文件不齊全,這些介面是幹嘛的?引數是什麼意思?等等問題。
歸根到底還是沒有嚴格的開發規範,最重要的還是要有方便的工具來幫助我們落地這些規範。
今天給大家推薦一個開源的 API 管理工具,如果還沒有用上的感覺看看吧。
YAPI
YApi 是高效、易用、功能強大的 api 管理平臺,旨在為開發、產品、測試人員提供更優雅的介面管理服務。可以幫助開發者輕鬆建立、釋出、維護 API,YApi 還為使用者提供了優秀的互動體驗,開發人員只需利用平臺提供的介面資料寫入工具以及簡單的點選操作就可以實現介面的管理。
主頁:[1]
GitHub:[2]
特性
基於 Json5 和 Mockjs 定義介面返回資料的結構和文件,效率提升多倍 扁平化許可權設計,即保證了大型企業級專案的管理,又保證了易用性 類似 postman 的介面除錯 自動化測試, 支援對 Response 斷言 MockServer 除支援普通的隨機 mock 外,還增加了 Mock 期望功能,根據設定的請求過濾規則,返回期 望資料 支援 postman, har, swagger 資料匯入 免費開源,內網部署,資訊再也不怕洩露了
主頁面

API 基本資訊

引數和響應

Swagger
介紹
Swagger 是一個規範且完整的框架,用於生成、描述、呼叫和視覺化 RESTful 風格的 Web 服務。Swagger 的目標是對 REST API 定義一個標準且和語言無關的介面,可讓人和計算機擁有無需訪問原始碼、文件或網路流量監測就可以發現和理解服務的能力。當透過 Swagger 進行正確定義,使用者可以理解遠端服務並使用最少實現邏輯與遠端服務進行互動。與為底層程式設計所實現的介面類似,Swagger 消除了呼叫服務時可能會有的猜測。
GitHub:[3]
整合
在 Spring Boot 中可以使用開源的 starter 包來進行整合會更簡單,比如我們用 spring4all 的這個封裝,Maven 依賴如下:
<dependency>
<groupId>com.spring4all</groupId>
<artifactId>swagger-spring-boot-starter</artifactId>
<version>1.9.1.RELEASE</version>
</dependency>
依賴加好後在啟動類上加@EnableSwagger2Doc 來啟用 Swagger。
使用
使用的話就不具體講解了,也比較簡單,就是在你的介面上加一些註解來描述這個介面是幹嘛的就可以了。
預設不加註解也能將你的介面全部顯示出來,也就是掃描了你的@RestController 中的方法。


有可能會遇到的問題
一般我們會在專案中進行全域性的異常處理,當發生錯誤時,將異常捕獲然後轉換成固定的格式響應給呼叫方,這樣可以統一 API 的資料格式。
我們會配置下面的內容,告訴 SpringBoot 不要為我們工程中的資原始檔建立對映,這樣就可以返回純 JSON 的內容。
spring.resources.add-mappings=false
但是這樣的話我們的 swagger-ui.html 就不能訪問了,所以需要對 swagger-ui.html 相關的資源單獨進行對映。
public class WebAppConfigurer extends WebMvcConfigurationSupport {
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");super.addResourceHandlers(registry);
}
}
ShowDoc
ShowDoc 是一個非常適合 IT 團隊的線上 API 文件、技術文件工具。
主頁:[4]
GitHub:[5]
我們可以用 ShowDoc 來做 API 文件,資料字典,說明文件等用途。可以自己進行部署,個人的話也可以使用官方提供的線上示列。
ShowDoc 支援許可權管理,支援 markdown 編輯,支援匯出,支援分享等功能。
API 文件


資料字典

CRAP-API
CRAP-API 是完全開源、免費的 API 協作管理系統。提供協作開發、線上測試、文件管理、匯出介面、個性化功能定製等功能。
主頁:[6]
GitHub:[7]
特性
簡單高效的 BUG 管理系統,記錄每一次變動 團隊協作、許可權控制、修改日誌 資料庫表、markdown、restful、mock、pdf、word 開源 chrome 外掛,支援跨域、本地、線上介面除錯 系統完全免費、完全開源
API 管理

資料字典
資料字典還支援生成 MyBatis 的 XML 檔案,生成 Java 的 Entity 物件。

參考資料
:
[2]:
[3]:
[4]:
[5]:
[6]:
[7]:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31561268/viewspace-2682083/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 華為研發基層分享我對華為的感受
- 撕開volatile的外衣一飽眼福
- 九年開發面試華為被拒?華為員工:要薪太低,我司沒有這樣的崗面試
- 我在華為OD的275天
- 因為你是我的夢——聽華為主題曲《我的夢》
- Notification API,為你的網頁新增桌面通知推送API網頁
- 華為雲釋出CodeArts API,為API護航API
- 每位開發者都是華為的「掃地僧」
- 宋慧麗我的乖生日快樂
- 我所認為的RESTful API最佳實踐RESTAPI
- 建設開發者生態:6項華為API管理原則落地API
- 關於go API開發的自認為好的教程分享GoAPI
- HTML5新增的APIHTMLAPI
- 華為開發者大會的邀請,園子的福利
- 華為廣州開撕三星:你盜用我在安卓首頁新增圖示的方法!賠1500萬!安卓
- 基於tp5.0開發的瑞麗女性網
- 華為的發展歷程
- 麗水開票-麗水開票
- 一路同行:開發者與華為雲的2022
- HarmonyOS開發者的喜訊——華為認證來啦!
- 我在華為做外包的真實經歷!
- 20 個 .NET 6 新增的 APIAPI
- 華為開發者 雲託管
- 360數科華麗財報下的增長困局
- 【開發者福利】公開API的使用API
- 好用的API介面,開發效率的利器API
- 【了不起的開發者】華為開發者大會2020(Together)已向你發來邀請~
- 我作為開發者犯過的兩次愚蠢的錯誤
- 《我的朋友佩德羅》:一根香蕉引發的開火嘉年華
- Box —— 我的開發助手
- 看來我是真的不適合華為系的。。。
- 美麗天天秒模式開發_美麗天天秒商城系統搭建模式
- 我們小公司,哪像華為一樣,用得上IPD(整合產品開發)?
- RETURNAL:華麗的黑暗電子聲音是如何製作的(上)
- 百度地圖API開發的快速使用和新增大量座標點的幾種方法地圖API
- 使用 TreeQL 加速你的 API 開發API
- 元宇宙只是未來技術演化的外衣元宇宙
- [譯] 創造華麗 UI 的 7 個規則(Part 2)UI