這裏先複述一下Richardson提出的REST成熟度模型,固然詳細的介紹能夠看我參考的連接html
這裏取一張圖,來自richardsonMaturityModelgit
HATEOAS(The Hypermedia As The Engine Of Application Statue)是REST架構的主要約束。「hepermedia」表示任何包含指向圖片、電影、文字等資源的連接,Web是超媒體的經典例子。HATEOAS背後的思想其實很是簡單,就是響應中包含指向其它資源的連接。客戶端能夠利用這些連接和服務器交互。github
而後咱們寫個demo實踐一下,是怎麼樣一個效果,先添加須要的依賴包:
spring
這裏看到咱們主要添加了spring-boot-starter-hateoas來支持hateoas約束api
而後咱們先定義一個交互的Dto,這個須要繼承org.springframework.hateoas.ResourceSupport服務器
接下來咱們就能夠實現咱們的rest api接口啦架構
這時候咱們能夠在swagger頁面使用一下spring-boot
能夠看到返回的數據中帶有了links信息,客戶端能夠根據這些信息作相應的處理,可是總感受一切沒有想的那麼容易,客戶端並不定會買帳。ui
之類Link類其實沒有那麼多信息,包含 rel 和 href 兩個屬性。屬性 rel 表示的是連接所表示的關係(relationship),href 表示的是連接指向的資源標識符,通常是 URI。.net
附:
swagger默認訪問頁面
boot工程格式:http://localhost:4500/swagger-ui.html
非boot工程:http://10.166.10.169:8085/xxx/swagger-ui.html
參考:
https://my.oschina.net/crooner/blog/644825
https://blog.csdn.net/tiaya/article/details/78408098
https://martinfowler.com/articles/richardsonMaturityModel.html