Каков хороший шаблон дизайна для возвращаемых значений веб-метода?

StackOverflow https://stackoverflow.com/questions/39585

  •  09-06-2019
  •  | 
  •  

Вопрос

Как вы структурируете возвращаемые значения при кодировании веб-сервисов? Как вы справляетесь с ошибочными условиями (ожидаемыми и неожиданными)? Если вы возвращаете что-то простое, например, int, вы просто возвращаете его или встраиваете в более сложный объект? Все ли веб-методы в одном сервисе возвращают экземпляр одного класса или вы создаете собственный класс возвращаемого значения для каждого метода?

Это было полезно?

Решение

Мне нравится шаблон объекта Request / Response, в котором вы инкапсулируете свои аргументы в один класс запроса [Operation], который имеет простые общедоступные свойства.

Что-то вроде AddCustomerRequest, которое будет возвращать AddCustomerResponse.

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

Еще один хороший пример - сделать все это производным от простого интерфейса IMessage, где ваша общая конечная точка - что-то вроде Process (params IMessage [] messages) ... таким образом, вы можете передавать несколько операций в одной и той же сети. запрос.

Другие советы

+1 за ответ Бена.

Кроме того, я предлагаю учесть, что общий ответ позволяет использовать несколько элементов ошибок / предупреждений, чтобы сделать ответ максимально полным и действенным. (Вы хотите использовать компилятор, который остановился после первого сообщения об ошибке, или компилятор, который сказал вам как можно больше?)

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

Неисправности мыла являются стандартной практикой, когда вызывающее приложение является клиентом Soap. В таких случаях, как COM-клиент, использующий XMLHTTP, Soap анализируется как XML, а ошибки Soap не могут быть легко обработаны. Не могу голосовать, но еще +1 за @Ben Scheirman.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top