JSON RPC 2.0: ответ, который является частичной ошибкой и частичным результатом

Каков стандартный подход к возвращению ответа JSON RPC при частичном сбое? Похоже, что и "результат", и "ошибка" не могут быть установлены одновременно.

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

a =(method)=> b
              b =(method)=> c
              b =(method)=> d
              b <=(error)== c
              b <=(result)= d
a <=(??????)= b

Лучше ли просто вернуть два ответа (один с любыми ошибками и без идентификатора, а другой с результатами и идентификатором, указывающим, что это последний ответ)?

1 ответ

Обязанность сервера - объединять и возвращать результаты, которые могут содержать ошибки. Это то, что ожидает ваш клиент.

--> {"jsonrpc": "2.0", "method": "getResults", "id": 1}

<-- {"jsonrpc": "2.0", "result": [ "success", "error" ], "id": 1}

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

Другие вопросы по тегам