рекомендуемый тип возврата для веб-службы, которая ничего не возвращает (вызывается с помощью jquery) - PullRequest
3 голосов
/ 02 июня 2009

У меня есть веб-сервис с некоторыми методами, они технически не сильно влияют на клиента.

Какой рекомендуемый тип возврата, я бы обычно возвращал JSON ... но в случае, если он ничего не возвращает ... я возвращаю логическое значение? то есть true = успешно ... и false = ошибка ??

Есть идеи?

Ответы [ 5 ]

3 голосов
/ 02 июня 2009

Как насчет кодов статуса HTTP:

200 OK
500 Error
2 голосов
/ 02 июня 2009

Если ничего не возвращается, используйте код состояния HTTP:

204 No Content
The server successfully processed the request, but is not returning any content.

Коды состояния HTTP подходят и для других целей, но используйте их только для статуса HTTP, а не для статуса приложения.

Для статуса приложения вам следует рассмотреть возможность использования стандартного объекта JSON (или SOAP, или XML, или любого другого формата, который вы используете). Это также как Stack Overflow делает это, что вы можете проверить, запустив на нем HTTP-отладчик:

{ "response": true, "data" : <data>, "message" : <message> }

Свойство response в идеале должно быть истинным или ложным, чтобы логика клиента была простой. Сообщение обычно будет нулевым, если только не произойдет ошибка, в этом случае оно будет содержать сообщение об ошибке.

Что касается кодов состояния HTTP, их следует использовать только для указания HTTP, а не кодов состояния приложения.

5xx Ошибка сервера

500 Internal Server Error
501 Not Implemented
502 Bad Gateway
503 Service Unavailable
504 Gateway Timeout
505 HTTP Version Not Supported
506 Variant Also Negotiates (RFC 2295 )
507 Insufficient Storage (WebDAV) (RFC 4918 )
509 Bandwidth Limit Exceeded (Apache bw/limited extension)
510 Not Extended (RFC 2774 )

2xx Успех

200 OK
201 Created
202 Accepted
203 Non-Authoritative Information (since HTTP/1.1)
204 No Content
205 Reset Content
206 Partial Content
207 Multi-Status (WebDAV)
1 голос
/ 02 июня 2009

Вы можете пойти по маршруту SOAP и вернуть статус в XML.

Это можно было бы проанализировать почти чем угодно.

как:

<m:IsYourMethodSuccessful xmlns:m="Some-Namespace-URI”> 
    <return>true</return> 
</m:IsYourMethodSuccessful> 

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

Или, так как вы уже анализируете JSON:

{ success : true }

{ success : false, exception : { ... } }
0 голосов
/ 02 июня 2009

Это немного зависит от метода. Для обновлений и созданий я обычно возвращаю идентификатор сервера объекта и время создания или обновления. Это помогает клиентам управлять состоянием объектов локально, если они их хранят.

0 голосов
/ 02 июня 2009

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

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