В нашем проекте книгу можно добавить, отправив структуру книги (в XML, JSON, ..) через запрос POST или PUT. Например, в XML структура книги выглядит следующим образом (упрощенно):
<book>
<title>My Book</title>
<author>John Q.</author>
</book>
Когда эта книга добавляется в нашу внутреннюю базу данных, автоматически добавляются некоторые автоматически сгенерированные свойства, такие как дата создания, идентификатор пользователя, который отправил книгу, идентификатор, ...
Когда книга извлекается через GET, эти дополнительные свойства включаются в определение книги:
<book>
<title>My Book</title>
<author>John Q.</author>
<info>
<creation_date>2011...</creation_data>
<user_id>48</user_id>
<identifier>my_book_john_q</identifier>
</info>
</book>
Это в основном означает, что схема XML новой / отредактированной книги (= от клиента к серверу) отличается от извлеченной книги (= от сервера к клиенту). Это сбивает с толку.
Можно сделать эти дополнительные свойства доступными в другом URI, например:
http://server/books/:id/ -> returns the short version
http://server/books/:id/information/ -> returns the generated properties
Недостатком этого подхода является то, что для получения всех данных необходимы два отдельных запроса.
Как бы вы решили это несоответствие?