Hallo zusammen, ich muss ein Dienstprogramm entwickeln, das eine externe API mit verschiedenen Parametern aufruft. Ich habe beispielsweise ein Array-Wert mit dem Wert 100 = ['we23', '22ww', 'gh22' .... n ] und URL: www.google.com, daher muss ich nacheinander den Wert von val an die URL anhängen, zuerst api = www.google.com/we23, zweitens api = www.google.com/22ww und eine externe API erstellen Drücken Sie und speichern Sie die Antwort in der Datenbank. Was ist der effizienteste Weg, dies zu tun? und Links zu Arbeitsbeispielen wären hilfreich.

1
K.M.J 22 Feb. 2020 im 18:14

3 Antworten

Beste Antwort

Ein sehr einfaches Beispiel für eine Express-App mit der Fetch-API:

const express = require('express')
const fetch = require('node-fetch')
const app = express()

// This sets up a route to localhost:3000/random and goes off and hits
// cat-fact.herokuapp.com/facts/random
app.get('/:apiRoute', async (req, res) => {
  try {
    const { apiRoute } = req.params
    const apiResponse = await fetch(
      'https://cat-fact.herokuapp.com/facts/' + apiRoute
    )
    const apiResponseJson = await apiResponse.json()
    // await db.collection('collection').insertOne(apiResponseJson)
    console.log(apiResponseJson)
    res.send('Done – check console log')
  } catch (err) {
    console.log(err)
    res.status(500).send('Something went wrong')
  }
})

app.listen(3000, () => console.log(`Example app listening on port 3000!`))

Besuchen Sie http: // localhost: 3000 / random

1
Andy Mardell 23 Feb. 2020 im 12:09

Mit dem folgenden Code können Sie mit Node.js + Express gleichzeitig API-Aufrufe innerhalb eines Endpunkts ausführen:

const [
      LoMasNuevo, LoMasVisto, TeRecomendamos, Categorias,
    ] = await Promise.all([
      numerosController.getLoMasNuevo(),
      numerosController.getLoMasVisto(),
      numerosController.getRecomendaciones(),
      categoriasController.getCategorias(),
    ]);

In jeder get-Funktion können Sie eine Axios-Anfrage wie folgt stellen:

const params = {
    method: 'GET',
    url: 'https://development.api.yodlee.com/ysl/transactions',
    headers: {
        'Api-Version': '1.1',
        Authorization: `Bearer ${tokenuser}`,
    },
};

const data = await axios(params);
return data;
0
Brian Hernandez 22 Feb. 2020 im 16:05
0
Le Quang 22 Feb. 2020 im 15:19