我正在爲另一個團隊構建的API創建一個Angular 4前端。 API遵循HATEOAS,併爲每個響應提供超媒體鏈接。如何在Angular中使用HATEOAS REST API?
我知道API的形狀,我想我只需將大量網址硬編碼到Angular Services中即可。但是,一位同事(誰是後端開發人員)正試圖說服我,我應該充分利用超媒體,因爲這意味着前端和後端之間的耦合減少(並且如果API改變,則可能會破壞)。
但是,我非常難以理解如何使用Angular的內置Http
服務實現簡單的HATEOAS模式。我如何以不將所有服務連接在一起並使其難以測試的方式來存儲/共享超媒體/ URL信息?那裏似乎沒有例子。
試圖創建一個HATEOAS友好的HTTP客戶端,甚至是一個好主意,或者它可能不值得麻煩?
您可以通過使用'rel'屬性找到響應中的url,並將該URL存儲到實體本身。例如,當您收到產品清單時,會從響應中獲取每個產品詳細信息頁面的鏈接並存儲在角度模型中。 –
謝謝。這只是我,還是這看起來違反了單一責任原則?爲什麼應該在API的細節/編輯/更新URL中嵌入產品信息? –
我不這麼認爲。這只是元信息,與產品實體高度一致。如果你硬編碼/構造URL,那麼你正在創建一個不必要的依賴關係並添加額外的責任。 –