Веб-службы RESTful: различное представление XML для одного и того же ресурса - PullRequest
0 голосов
/ 17 июня 2010

Я занимаюсь разработкой веб-службы REST с использованием ответа в формате XML, и у меня возникли некоторые проблемы (действительно, одна проблема).

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

Что мне делать, давать пользователю разные XML-схемы для одного и того же ресурса или писать только одну XML-схему и читать некоторые поля или нет, в зависимости от запрашиваемого мной метода ??

Спасибо

Ответы [ 3 ]

0 голосов
/ 17 июня 2010

Похоже, ваш вопрос касается документации - как лучше всего сообщить различные правила для приемлемых представлений в зависимости от состояния ресурса, или, скорее, от того, существует он или нет.

Если это так, и вы используете файлы XML-схемы W3C (XSD) для документирования своих представлений, то я рекомендую один файл XSD, который разрешит поля, но добавит дочерние элементы xsd: annotation в рассматриваемые поля и обратите внимание, что эти поля разрешены только при создании нового ресурса, а не при изменении существующего ресурса.

Затем вы можете использовать один и тот же XSD для проверки обоих вариантов использования, а также иметь несколько строк кода для специальной проверки неизменяемых полей и отклонения запроса, если пользователь пытается изменить их. Это действительно важно; Документация имеет значение, но наличие системы, дающей полезную обратную связь, еще более важно. Если кто-то попытается изменить одно из неизменных полей, верните «400 Bad Request» и в теле ответа включите четкое объяснение проблемы, понятное человеку.

0 голосов
/ 02 декабря 2013

Что мне делать, дать пользователю разные XML-схемы для одного и того же ресурс или написать только одну XML-схему и прочитать некоторые поля или нет в зависимости от метода меня запрашивают ??

Если вы хотите повторно использовать части схемы, вы можете импортировать эти части из другого файла или написать код на языке сервера для его повторного использования. Я думаю, что лучше повторно использовать поля с языком на стороне сервера, потому что он более гибкий.

0 голосов
/ 17 июня 2010

Из вашего описания я не рассматриваю это как два представления ресурса. Я вижу это как один ресурс, который меняется с течением времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...