Добавить данные (объект) в Джерси (Restful) Ответ на POST? - PullRequest
0 голосов
/ 04 января 2012

Я хочу получить объект, который зависит от другого, отправленного клиентом. Таким образом, в обычном сценарии я должен сначала отправить исходный объект POST, а затем извлечь его, чтобы создать конечный объект и получить его методом GET. Как я могу сделать это без сеанса? (Мы находимся в приложении RESTful).

Можно ли добавить объект (XmlElement) в ответ на запрос POST, используя Джерси? Я хочу избежать двух операций (POST, затем GET). Это противоречит протоколу HTTP?

1 Ответ

1 голос
/ 04 января 2012

С POST вы можете взять входной документ и создать выходной документ, и он не требует какого-либо сеанса.Глагол POST на самом деле просто означает «сделать что-то с этим»;это гораздо менее определенно по смыслу, чем GET, PUT или DELETE.Однако, если операция обработки, вероятно, займет «много времени» (что является нечеткой концепцией), вам лучше создать ресурс в ответ на POST, который отслеживает обработку и перенаправляет клиента на этот ресурс;таким образом, они могут получить результаты, как только они станут доступны.Вам решать, используете ли вы сеанс для управления существованием ресурса, но я не рекомендую его вообще;контроль доступа должен осуществляться удостоверением пользователя независимо от того, участвует ли сеанс или нет, а ресурс обработки должен быть доступен любому, кто спрашивает (и авторизован).Возможно, вам придется тщательно обдумать, что входит в управление полупереходными ресурсами (например, базой данных и политикой истечения срока действия), и тщательно спроектировать все приложение с учетом этого.

...