您的位置:首頁 > 軟件教程 > 教程 > Java Chassis 3技術(shù)解密:契約優(yōu)先(API First)開發(fā)

Java Chassis 3技術(shù)解密:契約優(yōu)先(API First)開發(fā)

來源:好特整理 | 時間:2024-05-09 09:45:38 | 閱讀:111 |  標(biāo)簽: T VA Pi First AVA API v S C 開發(fā) AV java   | 分享到:

本文分享自華為云社區(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ā)框架和模式有如下幾種:

  • Web Services技術(shù)可以由設(shè)計人員先編寫WSDL描述WEB服務(wù)內(nèi)容,然后結(jié)合工具生成代碼。WSDL可以進(jìn)行分發(fā),不同的語言都可以結(jié)合WSDL生成客戶端。
  • gRPC技術(shù)可以由設(shè)計人員先編寫IDL描述RPC服務(wù)內(nèi)容,然后結(jié)合工具生成代碼。gRPC主要解決服務(wù)內(nèi)部之間的調(diào)用。
  • Spring Boot允許開發(fā)人員利用swagger工具,先編寫Open API接口,然后通過工具生成RESTFul的服務(wù)端代碼。

這些技術(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):

  • 允許直接使用Java語言定義服務(wù)接口,不需要設(shè)計者掌握新的描述語言。
  • 同時定義Web服務(wù)接口和內(nèi)部RPC接口。

和Spring Boot一樣, Java Chassis的語言無關(guān)性描述語言仍然是Open API,通過Open API,可以滿足跨語言和服務(wù)分發(fā)的要求。

契約優(yōu)先開發(fā)的過程

契約優(yōu)先開發(fā)可以涵蓋設(shè)計、開發(fā)、測試、部署、運維等軟件開發(fā)的全流程,通過契約可以實現(xiàn)不同環(huán)節(jié)的并行工作,從而提高開發(fā)效率。 一個簡單的契約開發(fā)過程如下:

Java Chassis 3技術(shù)解密:契約優(yōu)先(API First)開發(fā)

下面通過代碼簡單展示通過Java語義定義契約,并實現(xiàn)提供者和消費者的過程。

  • 定義服務(wù)契約
  • 定義提供者
  • 定義消費者

使用RPC方式訪問提供者。

  • 服務(wù)分發(fā)和Web服務(wù)訪問

提供者的服務(wù)定義會生成如下Open API信息

這個信息可以用于WEB服務(wù)訪問,比如上面的信息可以使用

的HTTP請求來訪問。 對于其他框架或者語言,也可以使用Open API生成對應(yīng)的代碼來訪問。

服務(wù)治理

服務(wù)治理被設(shè)計為獨立于開發(fā)過程,結(jié)合Open API和服務(wù)治理規(guī)則描述語言,能夠?qū)PI進(jìn)行服務(wù)治理配置。

上述規(guī)則對API接口進(jìn)行限流控制。

契約優(yōu)先開發(fā)的其他方面

測試方面,可以通過契約生成自動化測試代碼,以覆蓋API的測試。 部署實施方面,可以將Open API信息導(dǎo)入網(wǎng)關(guān),實現(xiàn)API能力開放、認(rèn)證鑒權(quán)、計費等。 此外,契約還可以用于文檔生成、應(yīng)用監(jiān)控統(tǒng)計等各個方面。

總結(jié)

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ù)~

小編推薦閱讀

好特網(wǎng)發(fā)布此文僅為傳遞信息,不代表好特網(wǎng)認(rèn)同期限觀點或證實其描述。

相關(guān)視頻攻略

更多

掃二維碼進(jìn)入好特網(wǎng)手機(jī)版本!

掃二維碼進(jìn)入好特網(wǎng)微信公眾號!

本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請發(fā)郵件[email protected]

湘ICP備2022002427號-10 湘公網(wǎng)安備:43070202000427號© 2013~2025 haote.com 好特網(wǎng)