我的Angular 4應用程序使用Spring Data REST API HATEOAS服務器,我使用的是HttpClient,我發現它返回Object而不是像http這樣的any
。 我看過這個問題:Why does the httpclient in angular 4.3 return Object instead of any? 我知道了。我有很多這樣的領域複雜的JSON:Angular 4 HttpClient與HATEOAS REST服務器
{
"_embedded": {
"customers": [
{
"sid": "c44fdb6f-9b7c-4f75-8d4c-7542f54037b7",
"createdDate": "2017-08-01T13:06:23Z",
"lastModifiedDate": "2017-08-01T13:06:23Z",
"lastModifiedBy": "admin",
"name": "Customer 1",
"username": "customer1",
"address": "Via xxxxx",
"city": "Adria",
"landlinePhone": "+39042000000",
"mobilePhone": null,
"email": "[email protected]",
"fax": null,
"vatNumber": "IT01000020295",
"taxCode": null,
"iban": null,
"swift": null,
"enableEcommerce": true,
"balance": 0,
"enabled": true,
"new": false,
"_links": {
"self": {
"href": "....:8080/api/v1/customers/1"
},
"customer": {
"href": "....:8080/api/v1/customers/1"
},
"movements": {
"href": "....:8080/api/v1/customers/1/movements"
},
"country": {
"href": "....:8080/api/v1/customers/1/country"
}
}
}
]
},
"_links": {
"self": {
"href": "....:8080/api/v1/customers{?page,size,sort}",
"templated": true
},
"profile": {
"href": "....:8080/api/v1/profile/customers"
},
"search": {
"href": "....:8080/api/v1/customers/search"
}
},
"page": {
"size": 20,
"totalElements": 1,
"totalPages": 1,
"number": 0
}
}
的HttpClient不允許做response.page.totalElements
因爲,就像我說的,響應類型是一個對象,而不是any
類型。 我在想什麼是完成我的目標的最好方法;我有兩個想法:
投下響應
any
。在這種情況下,我當然可以在沒有任何類型檢查的情況下訪問字段。創建幾個對象來映射HATEOAS響應:可能我需要至少2-3個接口,每個模型實體需要1個類。 與第一種解決方案相比,這種方法看起來相當複雜,可能過於複雜,我總是需要從對象到我的特定實體模型進行強制轉換;這意味着由於錯誤類型轉換,我可能會產生運行時異常。
你能不能給我一些建議和最佳實踐,以達到自己的目標,然後按照這個想法角的團隊畫了?
您是否嘗試了回覆['page']。totalElements? – Mackelito