2013-07-22 16 views
3

我試圖做一個乾淨的實現HATEOAS風格的REST-API。我的服務器端看起來有點像這樣(以僞HTTP和僞JSON):基本HATEOAS使用角度 - 加載入口點

GET /api-entry-point 

回報(與適當的Content-Type和所有的爵士樂):

{ 
    "_links": { 
    "login": "/login", 
    "users": "/someapi-part/users", 
    "orders": "/other-part/orders" 
    } 
} 

它,因此,該申請的單一入境點(_links符合HAL)。任何類型的客戶都會GET /api-entry-point,並知道從哪裏找到用戶或訂購資源。一個典型的事情是登錄,然後檢索用戶列表。

對於我的角度應用程序,這意味着獲得這些鏈接是第一件事。我使用自定義服務(基於$http)返回承諾進行HTTP調用。這個承諾需要在應用程序開始時解決一次。我如何確保使用角度發生這種情況?

我看了resolve屬性(在$routeProvider),但它似乎繁瑣和愚蠢的每條路線取決於/api-entry-point的決心。

我也檢查了module.run - 但它也沒有解決承諾。

我該如何解決這個問題?有沒有辦法或者我需要一個不同的方法/框架?

+0

那麼你的自定義服務在你的應用程序中替換了'$ http'嗎?我發現這有點難以遵循。 –

回答

0

這個承諾需要在應用程序啓動時解決一次。

也許我不太瞭解它,但不能只是做以下幾點?

在你的應用程序的第一頁上的一些控制:

yourHttpService.getLinks('http://base-uri').then(links) { 
    // do something with the links ... 
} 

在我們的項目中,我們已經建立了一個指令,而不是服務。你通過一個uri,指令公開數據,鏈接等等,以便你可以在你的控制器或html中使用它...