#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