Я создаю интеграцию между двумя программами, и мне нужно получить данные из программного обеспечения1, чтобы опубликовать их в программном обеспечении 2.
Я пытаюсь сделать это (не стесняйтесь, если это не лучший способдля этого):
Сначала создайте вызов API для получения данных из программного обеспечения1.Во-вторых, сохраните значения ответа JSON в переменных Наконец, используйте эти переменные, чтобы отправить его обратно в software2
Проблема заключается в том, что ответ JSON от вызова API для программного обеспечения 1 может содержать неизвестное количество объектов.(Иногда это может быть просто, иногда это может быть 2,3, ..., 10 или больше)
Итак, как я могу создать столько переменных, сколько мне нужно, чтобы хранить все эти данные и иметь возможность повторного использования?после?
Я создал программу с использованием node.js
Я думаю, у меня есть кое-что, что имеет смысл, если в ответе JSON будет только один объект, но мне нужна помощь для масштабированиятаким образом он может управлять любым количеством объектов.
Просмотреть мой код ниже
Вот пример ответа JSON от программного обеспечения1
[
{
"id": "my-awesome-program",
"currency": "USD",
"title": "My awesome program",
"cookie_time": 45,
"default_landing_page_url": "https://my-site.com"
}
]
Но иногда это может иметьболее одного объекта
[
{
"id": "my-awesome-program2",
"currency": "USD",
"title": "My awesome program 2",
"cookie_time": 45,
"default_landing_page_url": "https://my-site.com"
}
{
"id": "my-awesome-program1",
"currency": "USD",
"title": "My awesome program 1",
"cookie_time": 45,
"default_landing_page_url": "https://my-site.com"
}
]
Обратите внимание, что единственные значения, которые меня интересуют для хранения, это "id" и "title"
Вот модуль nodejs, который я использую:
const express = require('express');
const request = require('request-promise-native');
const NodeCache = require('node-cache');
const session = require('express-session');
const delay = require('delay');
Вот мой код
//====================================================//
// Get a list of programs from software1 //
//====================================================//
const getPrograms = async () => {
console.log('Retrieving programs');
const headers = {
Authorization: `Api-Key: xxxxxx`,
'Content-Type': 'application/json'
};
const programs = {
method: 'GET',
url: 'https://api.software1.com/1.6/programs/',
headers: headers,
json: true
};
request(programs)
.then(function (parsedBody) {
console.log(parsedBody);
})
.catch(function (err) {
console.log(err);
});
// Store programs data in reusable variables
// THIS IS WHERE I NEED HELP TO CREATE AS MANY VARIABLES AS OBJECTS IN THE JSON RESPONSE
const programObj = JSON.parse(parsedBody);
const programId = programObj.id;
const programTitle = programObj.title;
};
//====================================================//
// Post the list of programs in software2 //
//====================================================//
// Creating a contact property in software2 to store programs from the list retrieved from software1
const createPrograms = async (accessToken) => {
console.log('Creating a property named programs');
const headers = {
Authorization: `Bearer ${accessToken}`,
'Content-Type': 'application/json'
};
const program = {
headers: headers,
method: 'POST',
uri: 'https://api.software2.com/properties/v1/contacts/properties',
body: {
name: 'programs',
label: 'Programs',
description: 'programs in which the contact is enrolled',
groupName: 'group_of_properties',
type: 'enumeration',
fieldType: 'select',
options: [ // THIS IS WHERE I NEED HELP TO CREATE AS MANY OPTIONS AS CREATED REUSABLE VARIABLES
{
"label": programTitle,
"value": programId
},
]
},
json: true // Automatically stringifies the body to JSON
};
Спасибо за помощь!