Код ошибки API веб-службы? - PullRequest
       15

Код ошибки API веб-службы?

1 голос
/ 12 ноября 2010

Когда вы разрабатываете API своего веб-сервиса, как вы организуете код ошибки?

Я имею в виду, как вы отслеживаете свой код ошибки API, чтобы избежать двух кодов ошибок для одной и той же ошибки и т. Д. (Кажется, слишком много кода ошибки, чтобы отслеживать ???)

Ответы [ 3 ]

1 голос
/ 12 ноября 2010

У меня их будет два, потому что есть два преимущества иметь коды ошибок (API и сервисные):

  • Безопасность - вы не должны передавать подробности об API / бэкенде через сервис пользователю / потребителю в процессе производства. Наличие двух кодов ошибок означает, что тот, кто пытается атаковать ваш бэкэнд через службу, не может использовать эту информацию.
  • Идентификация области - с помощью двух кодов вы можете видеть, откуда (сервис или API) происходит ошибка.
  • Вы можете изменить серверную часть, которая может вводить новые коды (или иметь новые коды, которые конфликтуют со старыми), и веб-служба остается стабильной, а коды ошибок продолжают работать для вашего потребителя.
0 голосов
/ 12 ноября 2010

Заставьте своих разработчиков явно получать номер из центрального местоположения (это может быть последовательность базы данных).

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

0 голосов
/ 12 ноября 2010

В каких точках артефактов разработки появляются коды ошибок.Я обычно не использую перечисления в моем WSDL (возможно, я должен), но у меня есть перечисления или статические константы в моем (Java) коде.Так что, если вы соберете все это вместе, довольно просто отсканировать существующий список перед добавлением нового элемента.Однако я не уверен, что избегать дубликатов - это на самом деле хорошая вещь.

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

 10034  - disk full
 23487  - disk full

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

 10034 - disk full
 10034 - invalid input

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

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