Http-код состояния при сбое проверки - PullRequest
0 голосов
/ 21 октября 2019

У меня есть API, который взимает плату за заказ. Он принимает orderId и сумму в качестве входных данных. Затем он выполняет вызов «/ начисление» в нисходящий поток, который возвращает 202. Сразу после этого вызова он вызывает конечную точку «/ проверка», чтобы убедиться, что предыдущий заряд был успешным.

Теперь он можетСлучилось так, что заряд был отклонен. Одной из причин этого может быть то, что пользователь использовал просроченную карту. Каким должен быть код ошибки в этом сценарии?

  1. Насколько я понимаю, я не могу отправить 4xx, так как запрос был правильным для моей перспективы API. Плохой запрос - это то, что пользователь может исправить - в этом случае он не может ничего исправить, поскольку API просто принимает 'orderId' и общую сумму для начисления.

  2. ЕслиЯ отправляю 5XX, тогда 500 не имеет смысла, так как это не было «неожиданным условием» на моем сервере. Я также не могу отправить 503, так как мой сервер не был перегружен или отключен для технического обслуживания.

В настоящее время я отправляю 503 с кодом приложения, который отображается на: Ошибка подтверждения платежа.

1 Ответ

0 голосов
/ 22 октября 2019

Ответ сервера всегда должен быть в контексте ответственности домена за службу

Если служба «принимает» запрос, и это все, что должен знать запрашивающий (клиент), соперация домена выполняется асинхронно за кулисами, она должна возвращать 202

Если взаимодействие является синхронным, вы должны обязательно ответить с ошибкой, так как запрос был неудачным. Код ответа зависит от домена, на который отправляется сообщение.

Согласно вашим услугам, если API принимает идентификатор в запросе, который привел к неудавшемуся платежу, и клиент должен был передать правильный идентификатор,затем вы должны ответить 400 - ПЛОХОЙ ЗАПРОС.

Если, однако, API - это всего лишь указание от клиента запросить вас о выполнении некоторых действий в домене, и одно из действий в домене не удалось;тогда клиент ничего не может с этим поделать, и вы должны вернуть 5XX, так как это сбой службы

500, как правило, используется для сценариев изящных ошибок, как правило. Но если вы можете назвать это ошибкой сервера, то возврат 500

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

Пожалуйста, выберите, что подходит

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