Использование Axios для извлечения XML-данных

#javascript #asp.net #reactjs #api #axios

#javascript #asp.net #reactjs #API #axios

Вопрос:

Я относительно новичок в вызовах REST API.

У меня есть форма, которую заполняет пользователь, которая включает имя, фамилию, отдел и дату начала.

Я узнал об Axios, и это то, что я использую в своем приложении React. Мой текущий код выглядит следующим образом:

     axios.get('MyAPILocationHere/users', {
        params: {
            firstName: this.state.firstName,
            lastName: this.state.lastName,
            departmentCode: this.state.department,
        }
    })
        .then(function (response) {
            console.log(response);
        })
        .catch(function (error) {
            console.log(error);
        })
        .then(function () {
            // always executed
        });  
  

Однако для моего школьного проекта веб-API использует .NET Framework. И чтобы получить результаты ответа, это должно быть что-то вроде этого:

 http://rdc-servernamehere-vm:6001/api/users/nameLast/HANKS/nameFirst/TOM/departmentCode/MATH
  

Когда я просматриваю эту ссылку, это также XML-файл. Как мне изменить мой текущий код, чтобы передать мои параметры, чтобы получить необходимый ответ.

Ответ №1:

 axios.get(`http://rdc-servernamehere-vm:6001/api/users/nameLast/${this.state.firstName}/nameFirst/${this.state.lastName}/departmentCode/${this.state.department}`
   })
    .then(function (response) {
        console.log(response); // this will print xml data structure
    })
    .catch(function (error) {
        console.log(error);
    })
    .then(function () {
        // always executed
    });  
  

И вы должны импортировать xml в библиотеку преобразования json вверху.

 const convert = require("xml-js");
...
function (response) {
   console.log(response); // this will print xml data structure
   const data = JSON.parse(
    convert.xml2json(response.data, { compact: true, spaces: 2 })
  );
  this.setState({ userList: data  }); // you can use this.state.userList to view users
}
  

Комментарии:

1. спасибо за ваш ответ это пакет: https://www.npmjs.com/package/xml2js или это этот https://www.npmjs.com/package/xml-js

2. @mustafaBattalogu Я получаю эту ошибку здесь сейчас: ‘res’ не определено, нет-undef для этой строки здесь convert.xml2json(res.data, { compact: true, spaces: 2 })

3. hisusu32, извините. вы должны написать как convert.xml2json(response.data, { compact: true, spaces: 2 })

4. вы должны использовать https://www.npmjs.com/package/xml-js package