Axios: Comunicación de servidor a servidor

axios

Comunicación de servidor a servidor de Axios como ingeniero de backend de Node JS – 01

Axios es un cliente HTTP basado en promesas para node.js y el navegador. Es isomórfico (= puede ejecutarse en el navegador y en nodejs con la misma base de código). En el lado del servidor, utiliza el módulo http nativo node.js, mientras que en el cliente (navegador) utiliza XMLHttpRequests.


Bien, vayamos al grano, compartiré un código que realmente te ayudará cuando trabajes en la API y crees una API que sirva de “servidor a servidor”

Primero al principio, generalmente hay dos técnicas de tipo que comúnmente usa el ingeniero de backend cuando crea una API que se comunicará con otra API de otro servidor:

1. application/ x-www-form-urlencoded

2. multipart / form-data


Código de muestra para application / x-www-form-urlencoded:

OBTENER

const opt = {
url: `http://localhost:3000/books`,
method: ‘GET’,
headers: {
‘Content-Type’: ‘application/json’ ,
authorization: req.headers.authorization
},
params: {
page,
limit
}
};

const data = await axios(opt)
.then(ok => ok)
.catch(error => error);

POST

const opt = {
url: `http://localhost:3000/books`,
method: ‘POST’,
headers: {
‘Content-Type’: ‘application/json’,
authorization: req.headers.authorization
},
data: { id, name, content},
};

const data = await axios(opt)
.then(ok => ok)
.catch(error => error);

UPDATE

const opt = {
url: `http://localhost:3000/books/:id_book`,
method: ‘PUT’,
headers: {
‘Content-Type’: ‘application/json’,
authorization: req.headers.authorization
},
data: { name, content},
};

const data = await axios(opt)
.then(ok => ok)
.catch(error => error);

ELIMINAR

const opt ​​= {
url: ` http://localhost:3000/books/:id_book`,
headers: {
authorization: req.headers.authorization,
},
method: “DELETE”,
data: { flag }
};

datos const = aguardar axios (opt)
.entonces (ok => ok)
.catch (error => error);


Fácil ¿no es cierto?

Ahora pasemos a los datos de formulario, ahora cargaremos cualquier archivo, ya sea imagen, documento, video, música, etc. y el nombre de nuestros archivos será “Image_cover”


Código de muestra para multipart / form-data:

POST

const BodyFormData = require (‘form-data’);

bodyFormData.append(‘username’, ‘Jimmy’);
bodyFormData.append(‘book’, ‘science’);
bodyFormData.append(‘file_upload’,
req.files.image_cover[0].buffer,
{
filename: req.files.image_cover[0].originalname,
contentType: req.files.image_cover[0].mimetype,
knownLength: req.files.image_cover[0].size
}
);

const opt ​​= {
url: ‘http://localhost:3000/books/upload”,
método: “POST”,
encabezados: bodyFormData.getHeaders(),
maxContentLength: Infinity,{
maxBodyLength: Infinity,
data: bodyFormData
};

// personalice su propia configuración de encabezado
opt.headers.Accept = “aplicación/json”;

await axios (opt)
.then(ok => ok)
.catch (error => error);


Sí, ahora puede enviar un archivo desde un servidor a otro servidor sin preocuparse

¡Espere! Una cosa más si trabaja con EXPRESS JS:

req.query = “params” dentro del parámetro axios como este params: { page, limit }

req.params = “: id_book” dentro de la variable url de axios como esta http://localhost:3000/books/:id_book

req.headers.authorization = “Bearer YOUR_TOKEN” para enviar token

Recent Post