SpringBoot 2 構建 REST 服務 - 總結

在該教程中,我們一起參與了各種構建 REST API 的策略。事實證明,REST 不僅涉及漂亮的 URI,而且還返回 JSON 而不是 XML。

相反,以下策略有助於使我們的服務不太可能破壞我們可能控制或可能無法控制的現有客戶端:

  • 不要刪除舊字段。相反,支持它們;
  • 使用基於 rel 的鏈接,這樣客戶就不必對 URI 進行硬編碼;
  • 儘可能保留舊的鏈接。即使必須更改 URI,也請保留 rel,以便較舊的客戶端可以使用較新的功能;
  • 使用鏈接(而不是有效負載數據)

爲每種資源類型構建 RepresentationModelAssembler 實現並在所有控制器中使用這些組件似乎有點費勁。但是,服務器端設置的這一額外工作(藉助 Spring HATEOAS 可以輕鬆實現)可以確保我們控制的客戶端(更重要的是,我門控制不了的客戶端)可以在我們開發 API 時輕鬆升級。

這樣就結束了我們有關如何使用 Spring 構建 RESTful 服務的教程。該教程的每個部分在單個 github 存儲庫中作爲單獨的子項目進行管理:

  • 非 rest - 沒有超媒體的簡單 Spring MVC 應用;
  • rest - 具有每個資源的 HAL 表示形式的 Spring MVC + Spring HATEOAS 應用;
  • 演進 - REST 應用,在該應用中可擴展字段,但保留舊數據以向後兼容;
  • 鏈接 - REST 應用,其中條件鏈接用於向客戶端發送有效狀態更改信號。

要查看使用 Spring HATEOAS 的更多示例,請參見 https://github.com/spring-projects/spring-hateoas-examples

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章