Ответное сообщение: составное сообщение или дополнительные поля - PullRequest
3 голосов
/ 08 октября 2011

Мы работаем с набором веб-сервисов и ищем лучший вариант для возврата ошибок потребителю веб-сервиса.Это текущий ответ:

Ответ

  • Некоторые данные о сервере
  • Некоторые данные о пользователе
  • Некоторые полученные данныевыполнения транзакции

Итак, нам нужно возвращать и ошибки.Вот наши варианты:

Составное сообщение

Мы вернем два типа ответов в зависимости от того, была ли транзакция утверждена или произошла ошибка:

Первый:

  • идентификатор типа (это сообщение сериализовано. Поэтому мне нужно знать, с каким типом сообщения я имею дело, для десериализации последней части)
  • Некоторые данные о сервере
  • Некоторые данные о пользователе
  • Некоторые итоговые данные выполнения транзакции

Секунда:

  • идентификатор типа (это сообщениесериализуется, поэтому мне нужно знать, с каким типом сообщения я имею дело, для десериализации последней части)
  • Некоторые данные о сервере
  • Некоторые данные о пользователе
  • Ошибки

Необязательные поля

данные транзакции и поля ошибок будут необязательными.если нет ошибок, я буду знать, что это было одобрено.

  • Некоторые данные о сервере
  • Некоторые данные о пользователе
  • Некоторые итоговые данные выполнениятранзакция
  • ошибки

Какой вариант больше подходит?

1 Ответ

1 голос
/ 08 октября 2011

Это отвратительно и больше личного мнения, чем передовой практики.

Мое личное предпочтение состоит в том, чтобы использовать Необязательные поля , поскольку код ошибки является возможным результатом операции. Я ожидал бы, что клиент всегда сначала проверяет (необязательные) свойства ошибки возвращаемого результата, прежде чем анализировать результаты. Это позволяет также возвращать несмертельные ошибки и частичные результаты вместе. Эксклюзив делает его таким ... эксклюзивным. Необязательный, более гибкий.

...