Отраслевая практика ответа API на частичный сбой и просьбы клиентов повторить - PullRequest
0 голосов
/ 03 декабря 2018

USE-CASE: Я разрабатываю API обновления, где внешние клиенты могут передавать информацию о ресурсах (в формате JSON) для сохранения.Весь ресурс сохраняется в виде нескольких нисходящих потоков (параллельно) в форме меньших ресурсов.Итак, если какой-либо из нисходящих каналов не работает, я планирую вернуть 5XX http код ответа, чтобы клиент повторил попытку.Но в то же время хочу убедиться, что клиент знает, какая часть ресурса была успешной.

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

ПОДТВЕРЖДАЕТСЯ ПОДХОД Я планирую вернуть код ответа HTTP как 5XX, но в то же время добавлю часть ресурса (формат JSON) к ответу, который был успешным.

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

1 Ответ

0 голосов
/ 03 декабря 2018

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

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