Сделайте unirest запрос GET с Node.js & Express - PullRequest
0 голосов
/ 28 сентября 2018

У меня проблемы с выяснением того, как сделать самый странный запрос GET.Я хочу получить данные из внешнего API внутри одного из моих маршрутов API (используя Express), а затем получить эти данные в моем интерфейсе (используя ReactJS).

Кто-нибудь, кто может указать мне правильное направление?

Вот как далеко я прошел:

Экспресс-сервер с моим GET-маршрутом

const express = require('express');
const unirest = require('unirest');

const app = express();
const port = process.env.PORT || 5000;

app.get('/api/podcasts', (req, res) => {
    //HOW DO I MAKE GET REQUEST EXTERNAL API? WITH UNIREST
});

app.listen(port, () => console.log(`Listening on port ${port}`));

Мой компонент ReactJS:

import React, { Component } from 'react'

export default class Podcasts extends Component {

  state = {
    response: ''
  };

    componentDidMount() {
    this.callApi()
      .then(res => this.setState({ podcasts: res }))
      .catch(err => console.log(err));
  }

  callApi = async () => {
    const response = await fetch('/api/podcasts');
    const body = await response.json();

    if (response.status !== 200) throw Error(body.message);

    return body;
  };

  render() {
    return (
        <div>
          <div>Show data from my state here</div>
        </div>
    );
  }
}

1 Ответ

0 голосов
/ 28 сентября 2018

Ссылаясь здесь

const express = require('express');
const unirest = require('unirest');

const app = express();
const port = process.env.PORT || 5000;

app.get('/api/podcasts', (req, res) => {
  unirest.get('your url').end((response) => {
    //make sure response should be a JSON object
    res.status(200).send(response)
  });
});

app.listen(port, () => console.log(`Listening on port ${port}`));

РЕДАКТИРОВАТЬ - Для преобразования XML в JSON

вы можете преобразовать XML в JSONиспользуя parse - xml2json , см. пример ниже

let xmlParser = require('xml2json');
let xmlString = `<?xml version="1.0" encoding="UTF-8"?>
<TestScenario>
   <TestSuite name="TS_EdgeHome">
      <TestCaseName name="tc_Login">dt_EdgeCaseHome,dt_EdgeCaseRoute</TestCaseName>
      <TestCaseName name="tc_Logout">dt_EdgeCaseRoute</TestCaseName>
   </TestSuite>
   <TestSuite name="TS_EdgePanel">
      <TestCaseName name="tc_AddContract">dt_EdgeCaseHome,dt_EdgeCaseSpectrum</TestCaseName>
   </TestSuite>
      <TestSuite name="TS_EdgeRoute">
      <TestCaseName name="tc_VerifyContract">dt_EdgeCaseRoute</TestCaseName>
      <TestCaseName name="tc_Payment">dt_EdgeCaseRoute</TestCaseName>
   </TestSuite>
   <TestSuite name="TS_EdgeSpectrum">
      <TestCaseName name="tc_ClientFeedback">dt_EdgeCaseSpectrum</TestCaseName>
   </TestSuite>
</TestScenario>`;

console.log(xmlParser.toJson(xmlString));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...