2017-04-06 33 views
0

好吧,我努力去愛HATEOAS。帶有REST存儲庫的Spring Boot非常棒。做我想要的一切。我只有兩個不應該那麼不尋常的要求。所以,我怎麼做到以下幾點:如何愛春天Hateoas解決簡單的需求

鑑於我有以下兩個實體:

@Entity() 
public class GameConsole{ 
    @Id 
    private String name; 
} 
@Entity() 
public Class Game{ 
    @Id 
    private String name; 
    @ManyToOne 
    private GameConsole gameConsole; 
} 

假設我有REST庫露出了兩個實體。

1 - 如何生成與遊戲的名稱和控制檯的一個請求名稱的表列表:

從GET請求 - /遊戲 使用任何框架,jQuery的,棱角分明,沒有按「T沒關係,只要填寫以下內容:

| Game console | Game  | 
| PS4   | Uncharted | 
| XBOX   | HALO  | 

的問題是,當我查詢/遊戲,我得到的鏈接到/遊戲/光暈/ gameConsole,而不是實際的gameConsole的ID遊戲列表。 那麼這是否意味着我必須循環查詢每個項目以獲取遊戲控制檯名稱?

2 - 下拉菜單

可以說,我有一個網頁編輯我的遊戲。我想添加一個下拉菜單並放置更新的遊戲控制檯。 要填充我的下拉列表,我查詢/ gameConsoles並獲取控制檯列表。 我的問題再一次出現在遊戲的ID中,並且鏈接到/ game/halo/gameConsole,無法與從/ gameConsoles返回的任何項目匹配。

我該如何解決這個問題?

如果答案很簡單,真的很感激耐心的傢伙。

回答

0

在Spring數據休息,你可以與預測工作上下文 - see here.

使用的預測,你可以嵌入您引用的對象,而不是得到一個鏈接資源。

+0

投影在項目級別執行,而不在列表級別執行。除非我錯了。 – Rafael

+0

您也可以在列表級別使用投影。如果您在應用程序中使用@RepositoryRestResource批註,您甚至可以通過設置「excerptProjection」選項爲「_embedded」下列出的項目定義默認Projection。 – dcpastoors