本文分享自華為云社區(qū)《Java Chassis 3技術(shù)解密:契約優(yōu)先(API First)開發(fā)》,作者: liubao68。 契約優(yōu)先(API First)開發(fā)是指應(yīng)用程序開發(fā)過程中,將API設(shè)計作為第一優(yōu)先級的任務(wù)。契約優(yōu)先開發(fā)隨著Web Services概念的發(fā)展而不斷得到重視,特別是微服務(wù)架構(gòu)
本文分享自華為云社區(qū)《Java Chassis 3技術(shù)解密:契約優(yōu)先(API First)開發(fā)》,作者: liubao68。
契約優(yōu)先(API First)開發(fā)是指應(yīng)用程序開發(fā)過程中,將API設(shè)計作為第一優(yōu)先級的任務(wù)。契約優(yōu)先開發(fā)隨著Web Services概念的發(fā)展而不斷得到重視,特別是微服務(wù)架構(gòu)出現(xiàn)以后,API設(shè)計成為影響功能開放、性能優(yōu)化等問題的關(guān)鍵因素。常見的契約優(yōu)先開發(fā)框架和模式有如下幾種:
這些技術(shù)都要求設(shè)計人員掌握一種語言無關(guān)的描述語言(WSDL、IDL、Swagger等),并且通過工具生成具體語言的代碼。它們支持的應(yīng)用場景也有所差異,Web Service適合對外的WEB服務(wù),gRPC適合對內(nèi)的RPC服務(wù)。Java Chassis契約優(yōu)先開發(fā)具備下面的幾個改進(jìn):
和Spring Boot一樣, Java Chassis的語言無關(guān)性描述語言仍然是Open API,通過Open API,可以滿足跨語言和服務(wù)分發(fā)的要求。
契約優(yōu)先開發(fā)可以涵蓋設(shè)計、開發(fā)、測試、部署、運維等軟件開發(fā)的全流程,通過契約可以實現(xiàn)不同環(huán)節(jié)的并行工作,從而提高開發(fā)效率。 一個簡單的契約開發(fā)過程如下:
下面通過代碼簡單展示通過Java語義定義契約,并實現(xiàn)提供者和消費者的過程。
使用RPC方式訪問提供者。
提供者的服務(wù)定義會生成如下Open API信息
這個信息可以用于WEB服務(wù)訪問,比如上面的信息可以使用
的HTTP請求來訪問。 對于其他框架或者語言,也可以使用Open API生成對應(yīng)的代碼來訪問。
服務(wù)治理被設(shè)計為獨立于開發(fā)過程,結(jié)合Open API和服務(wù)治理規(guī)則描述語言,能夠?qū)PI進(jìn)行服務(wù)治理配置。
上述規(guī)則對API接口進(jìn)行限流控制。
測試方面,可以通過契約生成自動化測試代碼,以覆蓋API的測試。 部署實施方面,可以將Open API信息導(dǎo)入網(wǎng)關(guān),實現(xiàn)API能力開放、認(rèn)證鑒權(quán)、計費等。 此外,契約還可以用于文檔生成、應(yīng)用監(jiān)控統(tǒng)計等各個方面。
Java Chassis基于JAVA語言的接口定義,可以同時滿足Native語言和平臺無關(guān)描述語言兩種情況的SDK分發(fā),并且不需要使用工具生成額外的運行代碼,給外部服務(wù)開發(fā)和內(nèi)部服務(wù)開發(fā)提供了統(tǒng)一一致的開發(fā)體驗。 契約優(yōu)先開發(fā)是面向服務(wù)化/微服務(wù)化非常高效的過程方法,Java Chassis給支持契約優(yōu)先開發(fā)提供了很好的工具支持。
點擊關(guān)注,第一時間了解華為云新鮮技術(shù)~
小編推薦閱讀
機(jī)器學(xué)習(xí):神經(jīng)網(wǎng)絡(luò)構(gòu)建(下)
閱讀華為Mate品牌盛典:HarmonyOS NEXT加持下游戲性能得到充分釋放
閱讀實現(xiàn)對象集合與DataTable的相互轉(zhuǎn)換
閱讀算法與數(shù)據(jù)結(jié)構(gòu) 1 - 模擬
閱讀5. Spring Cloud OpenFeign 聲明式 WebService 客戶端的超詳細(xì)使用
閱讀Java代理模式:靜態(tài)代理和動態(tài)代理的對比分析
閱讀Win11筆記本“自動管理應(yīng)用的顏色”顯示規(guī)則
閱讀本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請發(fā)郵件[email protected]
湘ICP備2022002427號-10 湘公網(wǎng)安備:43070202000427號© 2013~2025 haote.com 好特網(wǎng)