Создание простого Node.Js
приложения, в котором необходимо отображать данные из двух API, где оба API возвращают несколько объектов с идентификатором.
Необходимо отобразить данные обоих API на одной странице и каким-то образом получить данные из двух API на основе идентификатора.
Ответ API 1 выглядит следующим образом:
{
"hikes": [
{
"id": 1,
"active": true,
"name": "Mt. Everest",
},
{
"id": 2,
"active": true,
"name": "K2",
},
{
"id": 3,
"active": true,
"name": "Mt. Kinley",
},
]
}
Ответ API 2 выглядит следующим образом:
{
"hikes": [
{
"id": 1,
"slots": 50,
"available": 23,
},
{
"id": 2,
"slots": 20,
"available": 1,
},
{
"id": 3,
"slots": 43,
"available": 20,
},
]
}
Необходимо получить оба API, извлечь данные и отобразить на странице, чтобы отобразить «имя», «слоты» и «доступно»".
До сих пор удалось получить один из API-интерфейсов и передать данные на отрисованную страницу index.ejs
, но я не уверен, как мне получить второй API-интерфейс и как получить эти данные..
Мой код на данный момент выглядит так:
var port = process.env.PORT || 3000,
express = require("express"),
request = require("request"),
app = express();
app.set("view engine", "ejs");
var hikes = {
url: "https://api.com/hikes",
headers: {
'Identifier': identifier
}
};
var availability = {
url: "https://api.com/hikes",
headers: {
'Identifier': identifier
}
};
app.get("/", function(req, res){
function callback(error, response, body){
if(!error && response.statusCode == 200){
var data = JSON.parse(body);
res.render("index", {data: data});
})
}
}
request(hikes, callback);
});
app.listen(port, function(){
console.log("Running");
});
В моем index.ejs я на данный момент создал простой цикл для печати имен:
<% data["hikes"].forEach(function(hike){ %>
<p><%= hike.name %></p>
<% }) %>
Есть идеи, как это решить?
Спасибо!