2017-01-08 5 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 
} 

任意のアイデア: は正しいようなもので、すべての結果をラップすることですか?どんなthougths? ありがとうございます。

答えて

1

はい、エンベロープは広くレスポンスを使用してメタデータを送信する方法の1つです。たとえば、JSON API標準ではこのアプローチを使用します。

コード自体について。私はDTOオブジェクトからAPIを生成する方が好きです。 JSON APIとJavaでは、私はKatharsisを使用します。これはDTOを指定し、JPAスタイルで注釈を付け、データ検索用のリポジトリを作成します。リンク付きの折り返しが自動的に生成されます(また、すべてのエンドポイント - getOne、getAll ...)。私はAPIの標準的な使用法(JSONのAPI)を適用し、すべてのLinkWrappers、PaginationMetadataWrappersなどを取り除くため、この方法では...


同様のAPIの構築(レスポンスオブジェクトに添付search_metadata)は、少なくともでは、ツイッターで使用されていますthis example

関連する問題