Как отобразить ответ API на другую систему, ожидающую только один ответ? - PullRequest
1 голос
/ 08 апреля 2019

Я работаю с интеграцией между двумя системами ( A и B ), и я отвечаю за сторону A (C #). В этом сценарии B клиент использует API A , где каждая конечная точка доставляет все данные , относящиеся к этой конечной точке (например, конечная точка Clients *) 1014 * доставит всем клиентам только один ответ).

Проблема в том, что в некоторых конечных точках объем данных может (он будет) очень сильно увеличиваться, и мне нужно найти какой-то способ отправки его в пакетном режиме, предпочтительно не нужно менять реализацию B (там B s).

Одна большая деталь в этой задаче состоит в том, что сторона B не может нажать Next или похожую на следующую страницу, это система.

Какая-нибудь идея / библиотека / совет, который может мне помочь?

Фактический сценарий : ClientController доставляет все 10000 клиентов за один ответ.

Ожидаемый сценарий : отправляйте 100 клиентов одновременно, отправляя следующие 100 сразу после ответа, что предыдущие 100 прибыли нормально.

Ответы [ 2 ]

0 голосов
/ 08 апреля 2019

Зависит.

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

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

0 голосов
/ 08 апреля 2019

Вы можете использовать строку запроса:

/your_api/clients?limit=100&start=0"

, поэтому на системной стороне B вы будете повторять это и извлекать столько, сколько вам нужно в этот момент, изменяя start=и / или limit=

Редактировать : нет необходимости делать какие-либо mambo jumbo, строка запроса - хорошая вещь, если вы ее измените, нет необходимости обновлять потребителей, напримеркогда вы меняете API, так что если есть какая-то третья система, которая не нуждается в ваших изменениях, их не нужно обновлять.

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

...