2013-09-09 3 views
0

Предположим, мы коллекция /ads/ И структура сущность этой коллекции:REST коллекция объект с различной схемой

{"make": "Audi", "model": "A4"}

Так что мой вопрос: Что делать, если я хочу представить ту же сущность в другая форма. Например:

{"aggr": "Audi A4"}

это должен быть такими же URI только с другими парами запросов?/ads /? schema = aggr

Или новый ресурс?

/aggr?resource=ads

+0

'/ ads /' и '/ ads /? Schema = aggr' уже есть два разных ресурса. Параметры запроса являются частью идентификатора ресурса. –

ответ

1

я мог бы использовать один и тот же ресурс и представляют различные схемы, основанные на Accept параметра заголовка.

Запрос /ads с Accept: application/json будет возвращать {"make": "Audi", "model": "A4"}, если это ваша схема по умолчанию.

Запрос на /ads с Accept: application/json; schema=aggr будет возвращен {"aggr": "Audi A4"}.

1

Ваш ресурс не меняется, только его представление. В принципах отдыха, вы должны использовать гипермедиа для этого, с выбором заголовком запроса:

Accept: application/vnd.api.adsrepresentation1+json; 
Accept: application/vnd.api.adsrepresentation2+json;