2017-01-08 50 views
0

我需要設計REST API,並且遇到了將附加服務信息傳遞給我的DTO的問題。在dto內傳遞服務信息

我喜歡DTO:

public class UserDto implements Serializable { 

    private Long id; 
    private String login; 
    private String firstName; 
    private String lastName; 
    private String middleName; 

    // getters/setters 
} 

也是我與DTOS的名單端點。

我需要在每個響應中都傳遞AvailableActions。 這種情況的最佳做法是什麼? 那是正確的每一個結果包裹的東西,如:

public class Wrapper<T> { 

    private T data; 
    private List<Action> availableActions; 

    // getters/setters 
} 

任何想法?你有什麼想法? 在此先感謝。

回答

1

是的,封包是一種廣泛使用的技術,如何發送元數據與響應。例如JSON API標準使用這種方法。

關於您的代碼本身。我更喜歡從DTO對象生成API。使用JSON API和Java,我使用Katharsis,我只使用它指定DTO並使用JPA樣式註釋它併爲數據檢索創建存儲庫。包含鏈接的包裝會自動生成(以及所有端點 - getOne,getAll ...)。這樣,我執行API標準用法(JSON API),並擺脫所有LinkWrappers,PaginationMetadataWrappers等...


類似API建設(search_metadata附於響應對象)是由Twitter的使用,至少在this example