Query String Query String

🥇 Query String

🍿 Petición GET

Cuando el navegador realiza una petición Get, esta petición luce algo así…

GET /?nombre=Josue&apellido=Pier
Host: www.dominio-de-la-app.com
Cookie: usuario=josue;departamento=ventas

🍿 Petición POST

Cuando realizamos una petición mediante Post, esta petición luce algo así…

POST
Host: www.dominio-de-la-app.com
Content-Type: application/x-www-form-urlencoded
Cookie: usuario=josue;departamento=ventas

nombre=Josue&apellido=Pier

GET a diferencia de POST mantiene el query string nombre=Josue&apellido=Pier visible, pues forma parte del url.

🍿 Petición JSON

Cuando realizamos una petición que contine JSON, este forma parte del cuerpo del mensaje (body).

POST/HTTP/1.1
Host:www.dominio-de-la-app.com
Content-Type: application/json
Cookie: usuario=josue;departamento=ventas

{
    "username": "josedoc",
    "password": "nostruba"
}

🍿 ¿Cómo obtener valores enviados mediante una petición en express?

En cada uno de estos casos necesitamos un middleware, que pueda extraer el contenido de los datos.

🥤 Obtener variables GET en express

// Retraer parametro del query string (en este caso tenemos que
// proporcionar en el url el query string con el valor de cat)
// /?cat=nombreCategoria
app.get('/matricula/:id', function(peticion, respuesta) {
    respuesta.render('matricula.ejs', {
        id : peticion.params.id,
        cat : peticion.query.cat
    });
});

🥤 Obtener variables POST en express

Cuando deseamos parsear el body, requerimos un nuevo middleware que pueda realizar ese trabajo. Instalador body-parser.

$ npm install body-parser --save

Una vez instalado podemos hacer uso de el como módulo.

// iniciar bodyparser para variables post
var urlencodedParser = bodyParser.urlencoded({
    extended: false
});

// ruta para crear una nueva matricula mediante post
app.post('/matriculaPost', urlencodedParser, function(peticion, respuesta) {
    respuesta.send('Recibido!');
    console.log(peticion.body.nombre);
    console.log(peticion.body.matricula);
});

Los valores retraídos de variables post, se imprimirán en la consola de node o nodemon.

Para realizar pruebas enviando datos de las distintas formas, se puede hacer uso de herramientas como POSTMAN.

🥤 Obtener variables de una petición JSON

Al igual que las variables post, las variables json se pueden obtener utilizando body-parser.

// iniciar body parser para variables json
var jsonParser = bodyParser.json();

// ruta para crear una nueva matricula mediante json
app.post('/matriculaJson', jsonParser, function (peticion, respuesta) {
    respuesta.send('Recibido!');
    console.log(peticion.body.nombre);
    console.log(peticion.body.matricula);
});
Motores de templates Rest API's
comments powered by Disqus