Je ne fais que commencer avec Node, les API et les applications Web.
Je comprends le fonctionnement de base de Node.js et Express, mais maintenant je veux commencer à appeler les API d'autres services et faire des trucs avec leurs données.
Pouvez-vous décrire les requêtes HTTP de base et comment récupérer/analyser les réponses dans Node? Je suis également intéressé à ajouter des en-têtes spécifiques à ma demande (au départ, j'utilise l'API http://www.getharvest.com pour analyser mes données de feuille de temps).
P.S. Cela semble simple, mais beaucoup de recherches n'ont pas permis de répondre à ma question. Si c'est dupe, faites-le moi savoir et je le supprimerai.
Merci!
Vous ne pouvez pas aller chercher des trucs avec Express, vous devez utiliser la bibliothèque request de Mikeal dans ce but spécifique.
L'API de cette bibliothèque est très simple:
var 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.
}
})
Edit: Vous êtes préférable d'utiliser cette bibliothèque au lieu de celle par défaut http car elle a une API beaucoup plus agréable et des fonctionnalités plus avancées (elle prend même en charge les cookies).
Vous pouvez utiliser le client 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
});
En outre, vous pouvez définir des en-têtes comme décrit dans la documentation api :
client.request(method='GET', path, [request_headers])
Installation requise de deux packages.
npm install ejs
npm install request
server.js
var request = require('request');
app.get('/users', function(req, res) {
request('https://jsonplaceholder.typicode.com/users', function(error, response, body) {
res.json(body)
});
});
index.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);
}
});
Sortie