Axios: Comunicación de servidor a servidor

[vc_row el_class=”blog-info”][vc_column][vc_single_image source=”featured_image” img_size=”full” style=”vc_box_rounded”][vc_empty_space height=”40px”][vc_row_inner][vc_column_inner width=”1/6″][/vc_column_inner][vc_column_inner width=”2/3″][vc_column_text el_class=”font-weight-bold”]

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.

[/vc_column_text][vc_empty_space height=”40px”][/vc_column_inner][vc_column_inner width=”1/6″][/vc_column_inner][/vc_row_inner][vc_row_inner][vc_column_inner width=”1/6″][/vc_column_inner][vc_column_inner width=”2/3″][vc_column_text]


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

[/vc_column_text][/vc_column_inner][vc_column_inner width=”1/6″][/vc_column_inner][/vc_row_inner][/vc_column][/vc_row][vc_row el_class=”social-info”][vc_column width=”1/6″][/vc_column][vc_column width=”2/3″][vc_row_inner][vc_column_inner width=”1/2″][vc_column_text][social_share_button themes=’theme1′][/vc_column_text][/vc_column_inner][vc_column_inner el_class=”youtube-inner-col” width=”1/2″][vc_column_text][likebtn theme=”youtube” lang=”auto” show_like_label=”0″ white_label=”1″ alignment=”right”][/vc_column_text][/vc_column_inner][/vc_row_inner][vc_row_inner el_class=”social-info-inner”][vc_column_inner width=”1/4″][vc_single_image image=”921″][/vc_column_inner][vc_column_inner width=”3/4″][vc_column_text]

Diego Pacheco

Ingeniero en Sitemas, MBA (Babson College). Desarrollador PHP/Java/JavaScript. Fundador & CEO de EpicStudio. Entusiasta de las tecnologías web (JavaScript, Vue, Laravel, AWS, Docker) Viajes, Negocios, Surf y Growth.[/vc_column_text][asvc_list_item icon_fontawesome=”fa fa-calendar-o” icon_size=”14px”]Programar una reunión[/asvc_list_item][/vc_column_inner][/vc_row_inner][/vc_column][vc_column width=”1/6″][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]

Recent Post

[/vc_column_text][lvca_posts_carousel posts_query=”size:3|order_by:rand|post_type:post” image_linkable=”true” image_size=”full” taxonomy_chosen=”post_tag” display_title=”true” display_post_date=”true” display_summary=”true” autoplay_speed=”3000″ animation_speed=”300″ display_columns=”3″ scroll_columns=”3″ gutter=”3″ tablet_display_columns=”2″ tablet_scroll_columns=”2″ tablet_gutter=”3″ tablet_width=”800″ mobile_display_columns=”1″ mobile_scroll_columns=”1″ mobile_gutter=”3″ mobile_width=”480″][vc_empty_space height=”20px”][/vc_column][/vc_row]