Как вы реализуете это в службе отдыха? - PullRequest
0 голосов
/ 27 июня 2011

Я хочу создать спокойный сервис, который подтверждает предыдущий запрос и получает следующее сообщение за один вызов.Это экономит на ненужных звонках на сервер.Допустимо ли выполнять две операции за один вызов покоя?Если да, то какой глагол покоя вы бы использовали, поскольку он выглядит как комбинация get и put?

Извините за мое невежество, поскольку это ново для меня.

Ответы [ 2 ]

1 голос
/ 27 июня 2011

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

GET /Step1
=>
200 OK
Content-Type: application/vnd.hal+xml
<resource rel="self" href="http://example.org/step1">
   <title>Hello User</title>
   <link rel="next" href="http://example.org/step2" />
<resource>


POST http://example.org/step2
<!-- Insert Content here -->
=>
200 OK
Content-Type: application/vnd.hal+xml
<resource rel="self" href="http://example.org/step2">
   <title>Thank you for your content</title>
   <response>This is your answer</response>
   <link rel="next" href="http://example.org/step3" />
<resource>

Я использую hal в качестве типа носителя только в качестве примера, потому что он имеет четко определенный способ включения ссылок. Кроме того, я злоупотребляю стандартным отношением «следующая» ссылка, поскольку вы обычно используете GET со следующей. Вам, вероятно, понадобится пользовательское отношение ссылки, чтобы действительно делать то, что я предлагаю.

0 голосов
/ 27 июня 2011

Вот как я подходил к этой проблеме.

REQUEST
PUT /resource # (or POST)
Accept: application/xml
Content-Type: application/xml

<Resource>
    <Blah/>
</Resource>

RESPONSE
HTTP 1.1 200 OK # (or 201 Created)
Content-Type: application/xml
Content-Location: /resource

<Resource>
    <Blah/>
</Resource>

Я могу ошибаться при использовании Content-Location в ответе (спецификация HTTP 1.1 говорит, что его использование не определено для PUT и POST), но это то, что я использовал.Мне было бы интересно узнать, как это делают другие.

В общем, я не думаю, что есть проблема с возвратом контента с POST или PUT.

Джон

...