2017-01-08 11 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.

Относительно вашего кода. Я предпочитаю создавать API из объектов DTO. С JSON API и Java я использую Katharsis, с которым я просто указываю DTO и комментирую его в стиле JPA + создавать репозитории для извлечения данных. Обертка со ссылками генерируется автоматически (как и все конечные точки - getOne, getAll ...). Таким образом, я в жизнь API для стандартного использования (JSON API) и избавиться от всех LinkWrappers, PaginationMetadataWrappers и т.д ...


Похожие API строительства (search_metadata прикрепленный к объекту ответа) используется Twitter, по крайней мере, this example.