{"id":783,"date":"2019-06-24T14:42:30","date_gmt":"2019-06-24T21:42:30","guid":{"rendered":"https:\/\/rosolutions.com.mx\/blog\/?p=783"},"modified":"2019-06-24T14:42:30","modified_gmt":"2019-06-24T21:42:30","slug":"utilizar-axios-con-react","status":"publish","type":"post","link":"https:\/\/rosolutions.com.mx\/blog\/utilizar-axios-con-react\/","title":{"rendered":"Utilizar Axios con React"},"content":{"rendered":"<p>Axios es un cliente HTTP basado en promesas que funciona en navegador o del lado del servidor con node.js. Es una de las librer\u00edas m\u00e1s populares y cuenta con algunas caracter\u00edsticas que la API Fetch no proporciona por defecto como son los interceptors, convierte la respuesta del servidor a JSON autom\u00e1ticamente y tambi\u00e9n proporciona protecci\u00f3n contra ataques cross-site request forgery (XSRF).<\/p>\n<p>Para empezar necesitamos instalar axios mediante npm con el siguiente comando:<\/p>\n<pre class=\"javascript\" style=\"font-family: monospace\">npm install axios<\/pre>\n<\/p>\n<p>Despu\u00e9s en nuestro proyecto podemos crear un nuevo archivo llamado http.service.js y dentro de este archivo vamos a escribir el siguiente c\u00f3digo:<\/p>\n<pre class=\"javascript\" style=\"font-family: monospace\"><span style=\"color: #ff0000\">import<\/span> axios from <span style=\"color: #3366cc\">'axios'<\/span><span style=\"color: #339933\">;<\/span>\r\n<span style=\"color: #006600;font-style: italic\">\/\/ Se crea instancia http con valores default<\/span>\r\n<span style=\"color: #000066;font-weight: bold\">const<\/span> httpInstance <span style=\"color: #339933\">= <\/span>axios.<span style=\"color: #660066\">create<\/span><span style=\"color: #009900\">(<\/span> <span style=\"color: #009900\">{<\/span>\r\n    baseURL<span style=\"color: #339933\">:<\/span> \u2018https<span style=\"color: #339933\">:<\/span> <span style=\"color: #006600;font-style: italic\">\/\/www.api.com\/\u2019<\/span>\r\n<span style=\"color: #009900\">}<\/span><span style=\"color: #009900\">)<\/span><span style=\"color: #339933\">;<\/span><\/pre>\n<\/p>\n<p>En esta secci\u00f3n de c\u00f3digo solo importamos la librer\u00eda de axios y creamos una instancia que nos permitir\u00e1 utilizar ciertos valores por default que llevaran todas nuestras peticiones, en nuestro caso es la URL del servidor. Para m\u00e1s informaci\u00f3n sobre todos los valores que acepta axios, puedes revisar su documentaci\u00f3n en la secci\u00f3n \u201cRequest Config\u201d dando click <a href=\"https:\/\/github.com\/axios\/axios\">aqu\u00ed<\/a>.<\/p>\n<p>Podemos utilizar un m\u00e9todo especial de axios llamado interceptors que nos ayuda a capturar las peticiones o respuestas.<\/p>\n<pre class=\"javascript\" style=\"font-family: monospace\"><span style=\"color: #006600;font-style: italic\">\/\/ Interceptor para enviar datos recibidos y checar errores<\/span>\r\nhttpInstance.<span style=\"color: #660066\">interceptors<\/span>.<span style=\"color: #660066\">response<\/span>.<span style=\"color: #660066\">use<\/span><span style=\"color: #009900\">(<\/span><span style=\"color: #003366;font-weight: bold\">null<\/span><span style=\"color: #339933\">,<\/span> error <span style=\"color: #339933\">=&gt;<\/span> <span style=\"color: #009900\">{<\/span>\r\n    <span style=\"color: #000066;font-weight: bold\">const<\/span> expectedError <span style=\"color: #339933\">=<\/span> error.<span style=\"color: #660066\">response<\/span> <span style=\"color: #339933\">&amp;&amp;<\/span> error.<span style=\"color: #660066\">response<\/span>.<span style=\"color: #660066\">status<\/span> <span style=\"color: #339933\">&gt;=<\/span> <span style=\"color: #cc0000\">400<\/span> <span style=\"color: #339933\">&amp;&amp;<\/span> error.<span style=\"color: #660066\">response<\/span>.<span style=\"color: #660066\">status<\/span> <span style=\"color: #339933\">&lt;<\/span> <span style=\"color: #cc0000\">500<\/span><span style=\"color: #339933\">;<\/span>\r\n    <span style=\"color: #000066;font-weight: bold\">if<\/span> <span style=\"color: #009900\">(<\/span><span style=\"color: #339933\">!<\/span>expectedError<span style=\"color: #009900\">)<\/span> <span style=\"color: #009900\">{<\/span>\r\n        <span style=\"color: #006600;font-style: italic\">\/\/ Loggear mensaje de error a un servicio como Sentry<\/span>\r\n        <span style=\"color: #006600;font-style: italic\">\/\/ Mostrar error gen\u00e9rico al usuario<\/span>\r\n        <span style=\"color: #000066;font-weight: bold\">return<\/span> Promise.<span style=\"color: #660066\">reject<\/span><span style=\"color: #009900\">(<\/span>error<span style=\"color: #009900\">)<\/span><span style=\"color: #339933\">;<\/span>\r\n    <span style=\"color: #009900\">}<\/span>\r\n<span style=\"color: #009900\">)<\/span><span style=\"color: #339933\">;<\/span>\r\n\u00a0\r\n<span style=\"color: #ff0000\">export<\/span> <span style=\"color: #000066;font-weight: bold\">default<\/span> httpInstance<span style=\"color: #339933\">;<\/span><\/pre>\n<p>&nbsp;<\/p>\n<p>En esta secci\u00f3n verificamos si la respuesta nos arroj\u00f3 un error y si este error se encuentra del rango de errores esperados (errores del cliente) y en caso de ser un error inesperado (errores del servidor con status &gt;= 500) podemos mostrar alg\u00fan mensaje gen\u00e9rico al usuario y hacer un log de este tipo de errores. Por ultimo reenviamos la respuesta del servidor al bloque de c\u00f3digo que realizo la petici\u00f3n y exportamos nuestra instancia de axios.<\/p>\n<p>Para realizar peticiones simplemente tenemos que importar la instancia de axios que creamos en el archivo http.service.js de la siguiente forma:<\/p>\n<pre class=\"javascript\" style=\"font-family: monospace\"><span style=\"color: #ff0000\">import<\/span> http from <span style=\"color: #3366cc\">'.\/http.service'<\/span><span style=\"color: #339933\">;<\/span><\/pre>\n<\/p>\n<p>Luego podemos hacer una petici\u00f3n de la siguiente forma:<\/p>\n<pre class=\"javascript\" style=\"font-family: monospace\">http.<span style=\"color: #000066;font-weight: bold\">get<\/span><span style=\"color: #009900\">(<\/span>\u2018usuarios\u2019<span style=\"color: #009900\">)<\/span>.<span style=\"color: #660066\">then<\/span><span style=\"color: #009900\">(<\/span>usuarios <span style=\"color: #339933\">=&gt;<\/span> <span style=\"color: #009900\">{<\/span>\r\n    console.<span style=\"color: #660066\">log<\/span><span style=\"color: #009900\">(<\/span>usuarios<span style=\"color: #009900\">)<\/span><span style=\"color: #339933\">;<\/span>\r\n<span style=\"color: #009900\">}<\/span><span style=\"color: #009900\">)<\/span>.<span style=\"color: #000066;font-weight: bold\">catch<\/span><span style=\"color: #009900\">(<\/span>error <span style=\"color: #339933\">=&gt;<\/span> <span style=\"color: #009900\">{<\/span>\r\n    console.<span style=\"color: #660066\">error<\/span><span style=\"color: #009900\">(<\/span>error<span style=\"color: #009900\">)<\/span><span style=\"color: #339933\">;<\/span>\r\n<span style=\"color: #009900\">}<\/span><span style=\"color: #009900\">)<\/span><\/pre>\n<\/p>\n<p>Conclusi\u00f3n<\/p>\n<p>Hacer peticiones mediante axios nos ahorra algunas l\u00edneas de c\u00f3digo adem\u00e1s de proporcionarnos caracter\u00edsticas \u00fatiles como los interceptors. No te olvides de revisar la documentaci\u00f3n de axios para conocer m\u00e1s detalles <a href=\"https:\/\/github.com\/axios\/axios\">Axios Docs<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Axios es un cliente HTTP basado en promesas que funciona en navegador o del lado del servidor con node.js. Es una de las librer\u00edas m\u00e1s populares y cuenta con algunas caracter\u00edsticas que la API Fetch no proporciona por defecto como son los interceptors, convierte la respuesta del servidor a JSON autom\u00e1ticamente y tambi\u00e9n proporciona protecci\u00f3n [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":785,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-783","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Utilizar Axios con React &#8212; Desarrollo de software<\/title>\n<meta name=\"description\" content=\"Expertos en Desarrollo de Software, Aplicaci\u00f3nes M\u00f3viles, Sistemas Web, SEO, Marketing y Dise\u00f1o Web.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/rosolutions.com.mx\/blog\/utilizar-axios-con-react\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Utilizar Axios con React &#8212; Desarrollo de software\" \/>\n<meta property=\"og:description\" content=\"Expertos en Desarrollo de Software, Aplicaci\u00f3nes M\u00f3viles, Sistemas Web, SEO, Marketing y Dise\u00f1o Web.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rosolutions.com.mx\/blog\/utilizar-axios-con-react\/\" \/>\n<meta property=\"og:site_name\" content=\"Desarrollo de software\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/rosolutionsmx\/\" \/>\n<meta property=\"article:published_time\" content=\"2019-06-24T21:42:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/rosolutions.com.mx\/blog\/wp-content\/uploads\/2019\/06\/1-y6C4nSvy2Woe0m7bWEn4BA.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Roberto Alvarez Rosas\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ROSolutionsmx\" \/>\n<meta name=\"twitter:site\" content=\"@ROSolutionsmx\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Roberto Alvarez Rosas\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/utilizar-axios-con-react\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/utilizar-axios-con-react\/\"},\"author\":{\"name\":\"Roberto Alvarez Rosas\",\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/#\/schema\/person\/fd6a313abd9f6aa0bbf233eca81004fc\"},\"headline\":\"Utilizar Axios con React\",\"datePublished\":\"2019-06-24T21:42:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/utilizar-axios-con-react\/\"},\"wordCount\":349,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/utilizar-axios-con-react\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/rosolutions.com.mx\/blog\/wp-content\/uploads\/2019\/06\/1-y6C4nSvy2Woe0m7bWEn4BA.png\",\"articleSection\":[\"Uncategorized\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/rosolutions.com.mx\/blog\/utilizar-axios-con-react\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/utilizar-axios-con-react\/\",\"url\":\"https:\/\/rosolutions.com.mx\/blog\/utilizar-axios-con-react\/\",\"name\":\"Utilizar Axios con React &#8212; Desarrollo de software\",\"isPartOf\":{\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/utilizar-axios-con-react\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/utilizar-axios-con-react\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/rosolutions.com.mx\/blog\/wp-content\/uploads\/2019\/06\/1-y6C4nSvy2Woe0m7bWEn4BA.png\",\"datePublished\":\"2019-06-24T21:42:30+00:00\",\"description\":\"Expertos en Desarrollo de Software, Aplicaci\u00f3nes M\u00f3viles, Sistemas Web, SEO, Marketing y Dise\u00f1o Web.\",\"breadcrumb\":{\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/utilizar-axios-con-react\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/rosolutions.com.mx\/blog\/utilizar-axios-con-react\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/utilizar-axios-con-react\/#primaryimage\",\"url\":\"https:\/\/rosolutions.com.mx\/blog\/wp-content\/uploads\/2019\/06\/1-y6C4nSvy2Woe0m7bWEn4BA.png\",\"contentUrl\":\"https:\/\/rosolutions.com.mx\/blog\/wp-content\/uploads\/2019\/06\/1-y6C4nSvy2Woe0m7bWEn4BA.png\",\"width\":1200,\"height\":630,\"caption\":\"react logo\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/utilizar-axios-con-react\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Inicio\",\"item\":\"https:\/\/rosolutions.com.mx\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Utilizar Axios con React\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/#website\",\"url\":\"https:\/\/rosolutions.com.mx\/blog\/\",\"name\":\"Desarrollo de software\",\"description\":\"Blog de RO Solutions\",\"publisher\":{\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/rosolutions.com.mx\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/#organization\",\"name\":\"RO Solutions\",\"url\":\"https:\/\/rosolutions.com.mx\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/rosolutions.com.mx\/blog\/wp-content\/uploads\/2018\/03\/icono-01-2.png\",\"contentUrl\":\"https:\/\/rosolutions.com.mx\/blog\/wp-content\/uploads\/2018\/03\/icono-01-2.png\",\"width\":350,\"height\":346,\"caption\":\"RO Solutions\"},\"image\":{\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/rosolutionsmx\/\",\"https:\/\/x.com\/ROSolutionsmx\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/rosolutions.com.mx\/blog\/#\/schema\/person\/fd6a313abd9f6aa0bbf233eca81004fc\",\"name\":\"Roberto Alvarez Rosas\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/a8f0740c20096a32c157fad265c223559a535ef51bd28cd388adefcfd9b79a7f?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a8f0740c20096a32c157fad265c223559a535ef51bd28cd388adefcfd9b79a7f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a8f0740c20096a32c157fad265c223559a535ef51bd28cd388adefcfd9b79a7f?s=96&d=mm&r=g\",\"caption\":\"Roberto Alvarez Rosas\"},\"sameAs\":[\"http:\/\/rosolutions.com.mx\"],\"url\":\"https:\/\/rosolutions.com.mx\/blog\/author\/robertoalvarez\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Utilizar Axios con React &#8212; Desarrollo de software","description":"Expertos en Desarrollo de Software, Aplicaci\u00f3nes M\u00f3viles, Sistemas Web, SEO, Marketing y Dise\u00f1o Web.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/rosolutions.com.mx\/blog\/utilizar-axios-con-react\/","og_locale":"es_MX","og_type":"article","og_title":"Utilizar Axios con React &#8212; Desarrollo de software","og_description":"Expertos en Desarrollo de Software, Aplicaci\u00f3nes M\u00f3viles, Sistemas Web, SEO, Marketing y Dise\u00f1o Web.","og_url":"https:\/\/rosolutions.com.mx\/blog\/utilizar-axios-con-react\/","og_site_name":"Desarrollo de software","article_publisher":"https:\/\/www.facebook.com\/rosolutionsmx\/","article_published_time":"2019-06-24T21:42:30+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/rosolutions.com.mx\/blog\/wp-content\/uploads\/2019\/06\/1-y6C4nSvy2Woe0m7bWEn4BA.png","type":"image\/png"}],"author":"Roberto Alvarez Rosas","twitter_card":"summary_large_image","twitter_creator":"@ROSolutionsmx","twitter_site":"@ROSolutionsmx","twitter_misc":{"Escrito por":"Roberto Alvarez Rosas","Tiempo de lectura":"2 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/rosolutions.com.mx\/blog\/utilizar-axios-con-react\/#article","isPartOf":{"@id":"https:\/\/rosolutions.com.mx\/blog\/utilizar-axios-con-react\/"},"author":{"name":"Roberto Alvarez Rosas","@id":"https:\/\/rosolutions.com.mx\/blog\/#\/schema\/person\/fd6a313abd9f6aa0bbf233eca81004fc"},"headline":"Utilizar Axios con React","datePublished":"2019-06-24T21:42:30+00:00","mainEntityOfPage":{"@id":"https:\/\/rosolutions.com.mx\/blog\/utilizar-axios-con-react\/"},"wordCount":349,"commentCount":0,"publisher":{"@id":"https:\/\/rosolutions.com.mx\/blog\/#organization"},"image":{"@id":"https:\/\/rosolutions.com.mx\/blog\/utilizar-axios-con-react\/#primaryimage"},"thumbnailUrl":"https:\/\/rosolutions.com.mx\/blog\/wp-content\/uploads\/2019\/06\/1-y6C4nSvy2Woe0m7bWEn4BA.png","articleSection":["Uncategorized"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/rosolutions.com.mx\/blog\/utilizar-axios-con-react\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/rosolutions.com.mx\/blog\/utilizar-axios-con-react\/","url":"https:\/\/rosolutions.com.mx\/blog\/utilizar-axios-con-react\/","name":"Utilizar Axios con React &#8212; Desarrollo de software","isPartOf":{"@id":"https:\/\/rosolutions.com.mx\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/rosolutions.com.mx\/blog\/utilizar-axios-con-react\/#primaryimage"},"image":{"@id":"https:\/\/rosolutions.com.mx\/blog\/utilizar-axios-con-react\/#primaryimage"},"thumbnailUrl":"https:\/\/rosolutions.com.mx\/blog\/wp-content\/uploads\/2019\/06\/1-y6C4nSvy2Woe0m7bWEn4BA.png","datePublished":"2019-06-24T21:42:30+00:00","description":"Expertos en Desarrollo de Software, Aplicaci\u00f3nes M\u00f3viles, Sistemas Web, SEO, Marketing y Dise\u00f1o Web.","breadcrumb":{"@id":"https:\/\/rosolutions.com.mx\/blog\/utilizar-axios-con-react\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rosolutions.com.mx\/blog\/utilizar-axios-con-react\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/rosolutions.com.mx\/blog\/utilizar-axios-con-react\/#primaryimage","url":"https:\/\/rosolutions.com.mx\/blog\/wp-content\/uploads\/2019\/06\/1-y6C4nSvy2Woe0m7bWEn4BA.png","contentUrl":"https:\/\/rosolutions.com.mx\/blog\/wp-content\/uploads\/2019\/06\/1-y6C4nSvy2Woe0m7bWEn4BA.png","width":1200,"height":630,"caption":"react logo"},{"@type":"BreadcrumbList","@id":"https:\/\/rosolutions.com.mx\/blog\/utilizar-axios-con-react\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Inicio","item":"https:\/\/rosolutions.com.mx\/blog\/"},{"@type":"ListItem","position":2,"name":"Utilizar Axios con React"}]},{"@type":"WebSite","@id":"https:\/\/rosolutions.com.mx\/blog\/#website","url":"https:\/\/rosolutions.com.mx\/blog\/","name":"Desarrollo de software","description":"Blog de RO Solutions","publisher":{"@id":"https:\/\/rosolutions.com.mx\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/rosolutions.com.mx\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/rosolutions.com.mx\/blog\/#organization","name":"RO Solutions","url":"https:\/\/rosolutions.com.mx\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/rosolutions.com.mx\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/rosolutions.com.mx\/blog\/wp-content\/uploads\/2018\/03\/icono-01-2.png","contentUrl":"https:\/\/rosolutions.com.mx\/blog\/wp-content\/uploads\/2018\/03\/icono-01-2.png","width":350,"height":346,"caption":"RO Solutions"},"image":{"@id":"https:\/\/rosolutions.com.mx\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/rosolutionsmx\/","https:\/\/x.com\/ROSolutionsmx"]},{"@type":"Person","@id":"https:\/\/rosolutions.com.mx\/blog\/#\/schema\/person\/fd6a313abd9f6aa0bbf233eca81004fc","name":"Roberto Alvarez Rosas","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/a8f0740c20096a32c157fad265c223559a535ef51bd28cd388adefcfd9b79a7f?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a8f0740c20096a32c157fad265c223559a535ef51bd28cd388adefcfd9b79a7f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a8f0740c20096a32c157fad265c223559a535ef51bd28cd388adefcfd9b79a7f?s=96&d=mm&r=g","caption":"Roberto Alvarez Rosas"},"sameAs":["http:\/\/rosolutions.com.mx"],"url":"https:\/\/rosolutions.com.mx\/blog\/author\/robertoalvarez\/"}]}},"_links":{"self":[{"href":"https:\/\/rosolutions.com.mx\/blog\/wp-json\/wp\/v2\/posts\/783","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rosolutions.com.mx\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rosolutions.com.mx\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rosolutions.com.mx\/blog\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/rosolutions.com.mx\/blog\/wp-json\/wp\/v2\/comments?post=783"}],"version-history":[{"count":10,"href":"https:\/\/rosolutions.com.mx\/blog\/wp-json\/wp\/v2\/posts\/783\/revisions"}],"predecessor-version":[{"id":794,"href":"https:\/\/rosolutions.com.mx\/blog\/wp-json\/wp\/v2\/posts\/783\/revisions\/794"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rosolutions.com.mx\/blog\/wp-json\/wp\/v2\/media\/785"}],"wp:attachment":[{"href":"https:\/\/rosolutions.com.mx\/blog\/wp-json\/wp\/v2\/media?parent=783"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rosolutions.com.mx\/blog\/wp-json\/wp\/v2\/categories?post=783"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rosolutions.com.mx\/blog\/wp-json\/wp\/v2\/tags?post=783"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}