Node.js 및 Express를 사용한 간단한 API 호출
이제 막 노드, API 및 웹 애플리케이션을 시작했습니다.
Node.js와 Express의 기본 동작은 이해하지만, 이제 다른 서비스의 API에 대한 호출과 데이터 처리를 시작하고 싶습니다.
기본적인 HTTP 요구와 노드에서의 응답 취득/파싱 방법을 개략적으로 설명할 수 있습니까?또한 요청에 특정 헤더를 추가하고 싶습니다(http://www.getharvest.com API를 사용하여 타임시트 데이터를 크런치하고 있습니다).
추신: 이건 간단해 보이지만, 많은 검색에서 제 질문에 대한 답을 찾을 수 없었습니다.중복이 되면 알려주시면 삭제하겠습니다.
감사합니다!
Express에서는 데이터를 가져올 수 없습니다. Mikeal의 요청 라이브러리를 사용해야 합니다.
설치: npm install request
이 라이브러리의 API는 매우 간단합니다.
const request = require('request');
request('http://www.google.com', function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body) // Print the google web page.
}
})
편집: http 기본 라이브러리 대신 이 라이브러리를 사용하는 것이 좋습니다. 왜냐하면 이 라이브러리는 훨씬 더 좋은 API와 고급 기능(쿠키까지 지원)을 가지고 있기 때문입니다.
업데이트: 요청은 더 이상 사용되지 않지만 'got' 또는 'superagent'와 같은 몇 가지 좋은 대안이 있습니다(npm에 검색).
http 클라이언트를 사용할 수 있습니다.
var http = require('http');
var client = http.createClient(3000, 'localhost');
var request = client.request('PUT', '/users/1');
request.write("stuff");
request.end();
request.on("response", function (response) {
// handle the response
});
또한 api 매뉴얼에 설명된 대로 헤더를 설정할 수도 있습니다.
client.request(method='GET', path, [request_headers])
2개의 패키지를 인스톨 할 필요가 있습니다.
npm install ejs
npm install request
server.displaces
var request = require('request');
app.get('/users', function(req, res) {
request('https://jsonplaceholder.typicode.com/users', function(error, response, body) {
res.json(body)
});
});
인덱스.ejs
$.ajax({
type: "GET",
url: 'http://127.0.0.1:3000/posts',
dataType: "json",
success: function(res) {
var res_data = JSON.parse(res);
console.log(res_data);
}
});
산출량
언급URL : https://stackoverflow.com/questions/8515872/simple-api-calls-with-node-js-and-express
'programing' 카테고리의 다른 글
옵션을 동적으로 변경할 때 IE 선택 문제를 수정하는 방법 (0) | 2023.04.02 |
---|---|
Mongo에서 "not null"을 어떻게 조회합니까? (0) | 2023.04.02 |
Word Press가 제대로 프로그래밍되지 않은 것으로 간주되는 이유는 무엇입니까? (0) | 2023.04.02 |
첨부 파일과 함께 Wordpress 게시물을 프로그래밍 방식으로 추가하는 중 (0) | 2023.04.02 |
material-ui 'createSvgIcon'이 '@material-ui/core/utils'에서 내보내지 않았습니다. (0) | 2023.02.13 |