Google Data Fusion: «зацикливание» на входных данных для последующего выполнения нескольких вызовов API Restful для каждой строки ввода - PullRequest
1 голос
/ 23 марта 2020

У меня есть следующая задача, которую я хотел бы решить предпочтительно в Google Data Fusion:
У меня есть один веб-сервис, который возвращает около 30-50 элементов, описывающих счет в полезной нагрузке JSON, например:

{
  "invoice-services": [
    {
      "serviceId": "[some-20-digit-string]",
      // some other stuff omitted
    },
    [...]
  ]
}

Для каждого вхождения serviceId мне нужно повторно вызывать другой веб-сервис https://example.com/api/v2/services/{serviceId}/items, где каждый serviceId поступает из первого вызова. Меня интересуют только данные второго вызова, которые должны быть сохранены в BigQuery. Этот второй сервисный вызов не поддерживает подстановочные знаки или какой-либо другой механизм для агрегации элементов - то есть, если у меня 30 serviceId от первого вызова, мне нужно вызвать второй веб-сервис 30 раз.

Я заставил первый звонок работать, я заставил второй звонок работать с жестко закодированным serviceId, а также с сохранением в BigQuery. Эти вызовы просто используют HTTP-адаптер Data Fusion.

Однако как я могу использовать выходные данные первого сервиса таким образом, чтобы я выполнял один вызов веб-сервиса для второго сервиса для каждой строки, возвращаемой из первого вызова - эффективно зацикливание на всех serviceId?

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

Любая помощь очень ценится! J

PS: Это НЕ проблема с большими данными - я смотрю около 50 serviceId и, возможно, 300 пунктов.

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