[英]how to consume a Restful Web Service (Restful API) in Java
我只想知道該過程的高級步驟。 這是我對這個過程的想法:
假設:API 返回 JSON 格式
但是,如果 API 返回的 JSON 發生了變化怎么辦? 時不時的檢查一下JSON字符串,調整對應的Java類,真的很繁瑣。
任何人都可以幫助我解決這個問題。 謝謝
您描述了如何通過 http API 使用json ,這很好,因為大多數 API 就是這樣。 但是,如果您有興趣使用 Restful HTTP 資源,一種方法是:
檢查 API 文檔,又名。 您的客戶端需要支持的media-types
才能與其資源進行通信。 一些 RESTafarians 認為所有media-types
都應該標准化,因此所有客戶端都可能支持它們,但我認為這有點遠。
注意鏈接表示和處理邏輯。 media-types
不僅描述了數據的格式,還描述了如何處理它們。 如果是圖像,如何顯示它,如何運行可能是消息一部分的代碼,如何在屏幕上布局,如何使用嵌入式控件(如表單等)。
創建相應的 Java 類。 如果資源“僅”描述數據(它們通常在 API 上下文中描述),那么簡單的 Java 類就可以完成,否則可能需要更多。 例如:表示可以包含在客戶端上運行的 JavaScript 嗎? 您需要嵌入一個 JavaScript 引擎,並准備好您的類來做到這一點。
如果有,請調用帶有書簽的 URI。 您不應該調用類似 SOAP 的硬編碼“端點”。 您從書簽開始,然后按照您的客戶需要的狀態工作。
通常,您的第一個調用會轉到“開始”資源。 這是您在開始時唯一的書簽。 您可以在Accept
標頭中指定對此資源支持的media-types
。
然后您檢查返回的Content-Type
是否與您接受的media-types
之一匹配(請記住,服務器可以隨意忽略您的首選項),然后您根據其規則處理返回的表示。
例如,您想要獲取您還沒有書簽的客戶123456
所有帳戶。 您可能首先GET
用於帳戶管理的啟動資源。 那里的處理邏輯可能會描述一個鏈接到帳戶列表。 你按照鏈接。 那里的表示可能會給您一個“表格”,您必須在其中填寫客戶編號和POST
。 最后,您將獲得帳戶列表的表示。 此時您可以為頁面添加書簽,這樣下次您就不必遍歷整個鏈。
過程表示。 這可能涉及顯示、運行或只是將數據移交給其他類。
抱歉,這篇文章很長,一天工作很慢:) 只是為了完整性,客戶需要了解其他一些要點:緩存、處理書簽(對 3xx 代碼做出反應)、遵循表示中的鏈接。
版本控制是您提到的另一個主題。 這是對自身的全面討論,但簡而言之:有些人(包括我自己)主張對media-type
版本控制。 非向后兼容更改只需更改媒體類型的名稱(例如從application/vnd.company.customer-v1+json
到application/vnd.company.customer-v2+json
),然后一切(例如書簽)繼續因為內容協商而工作。
有很多方法可以使用 RESTful API。
通常,您需要知道要使用的 API 版本。 當 API 發生變化時(即暴露了不同的版本),您需要決定新功能是否值得將您的應用程序遷移到最新和最好的...
根據我的經驗,遷移到新 API 總是需要付出一些努力,這實際上取決於這樣做的價值(與不這樣做相比)和/或舊 API 是否會被棄用和/或發布者不支持.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.