{"id":41930,"date":"2022-12-22T18:30:14","date_gmt":"2022-12-23T00:30:14","guid":{"rendered":"https:\/\/webirix.com\/?p=41930"},"modified":"2022-12-22T18:30:14","modified_gmt":"2022-12-23T00:30:14","slug":"que-es-y-como-me-afecta-el-overfetching-y-underfetching","status":"publish","type":"post","link":"https:\/\/webirix.com\/en\/que-es-y-como-me-afecta-el-overfetching-y-underfetching\/","title":{"rendered":"\u00bfQu\u00e9 es y como me afecta el Overfetching y Underfetching?."},"content":{"rendered":"<p>Bienvenid@s,<\/p>\n<p>En el presente articulo se dar\u00e1n los principios de la solicitud de informaci\u00f3n a API&#8217;s, y como este impacta en el rendimiento de una aplicaci\u00f3n en internet.<\/p>\n<h2><strong>Conceptos b\u00e1sicos<\/strong><\/h2>\n<h3><strong>API<\/strong><\/h3>\n<p>Sus siglas vienen\u00a0 de <strong>A<\/strong>pplication\u00a0<strong>P<\/strong>rogramming\u00a0<strong>I<\/strong>nterfaces, y no es otra cosa que un conjunto de funciones en un sistema externo a las que puedes llamar desde tu propio sistema\/navegador\/app m\u00f3vil, etc., y que por lo general devuelven alg\u00fan valor o estado<strong> (Ejemplo: &#8220;Ok&#8221;, &#8220;Error&#8221;, Datos: {&#8216;Titulo&#8217;: &#8216;Hola&#8217;})<\/strong>.<a href=\"https:\/\/webirix.com\/wp-content\/uploads\/2022\/12\/Bot.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-41934 aligncenter\" src=\"https:\/\/webirix.com\/wp-content\/uploads\/2022\/12\/Bot-300x271.png\" alt=\"\" width=\"150\" height=\"136\" srcset=\"https:\/\/webirix.com\/wp-content\/uploads\/2022\/12\/Bot-300x271.png 300w, https:\/\/webirix.com\/wp-content\/uploads\/2022\/12\/Bot-335x303.png 335w, https:\/\/webirix.com\/wp-content\/uploads\/2022\/12\/Bot.png 587w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a><\/p>\n<p>Tomando como ejemplo a la aplicaci\u00f3n Whatsapp, cuantas veces no has querido entablar un chat con un representante de la empresa X, pero solo obtienes un chat con respuestas predefinidas que siguen un hilo de pregunta-repuesta muy especifico como:<\/p>\n<ul>\n<li>Escribe tu &#8220;Fecha de Nacimiento&#8221;.<\/li>\n<li>Entregas la fecha &#8220;2000\/25\/12&#8221;.<\/li>\n<li>Favor de respetar el formato &#8220;A\u00d1O\/MES\/DIA&#8221;<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><strong>Fetch<\/strong><\/h3>\n<p>Es una consulta a medios web\/servidores\/paginas\/servicios externos que espera recuperar un valor o grupo de valores (por lo generar a un API).<\/p>\n<p><a href=\"https:\/\/webirix.com\/wp-content\/uploads\/2022\/12\/API.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-41937 aligncenter\" src=\"https:\/\/webirix.com\/wp-content\/uploads\/2022\/12\/API-300x149.png\" alt=\"\" width=\"300\" height=\"149\" srcset=\"https:\/\/webirix.com\/wp-content\/uploads\/2022\/12\/API-300x149.png 300w, https:\/\/webirix.com\/wp-content\/uploads\/2022\/12\/API-768x381.png 768w, https:\/\/webirix.com\/wp-content\/uploads\/2022\/12\/API-335x166.png 335w, https:\/\/webirix.com\/wp-content\/uploads\/2022\/12\/API.png 988w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<h3><strong>Overfetching<\/strong><\/h3>\n<p>Se refiere a hacer llamadas o recuperar informaci\u00f3n extra\/adicional de un API, por ende no necesaria y que solo desecharemos o dejaremos sin uso.<\/p>\n<p>Imaginemos el caso del sitio web de gobierno, cuando tu solicitas un tramite de CURP debes ingresar un grupo de datos, y esperas recibir una descarga\u00a0 de\u00a0 t\u00fa archivo CURP solicitado, pero tambi\u00e9n recibes informaci\u00f3n relacionada que probablemente es parte de tus datos ingresados previamente.<a href=\"https:\/\/webirix.com\/wp-content\/uploads\/2022\/12\/CURP.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-41935 aligncenter\" src=\"https:\/\/webirix.com\/wp-content\/uploads\/2022\/12\/CURP-300x153.png\" alt=\"\" width=\"300\" height=\"153\" srcset=\"https:\/\/webirix.com\/wp-content\/uploads\/2022\/12\/CURP-300x153.png 300w, https:\/\/webirix.com\/wp-content\/uploads\/2022\/12\/CURP-1024x522.png 1024w, https:\/\/webirix.com\/wp-content\/uploads\/2022\/12\/CURP-768x391.png 768w, https:\/\/webirix.com\/wp-content\/uploads\/2022\/12\/CURP-335x171.png 335w, https:\/\/webirix.com\/wp-content\/uploads\/2022\/12\/CURP.png 1062w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<h3><strong>Underfetching<\/strong><\/h3>\n<p>Se refiere a realizar llamadas a medios externos de los que se recupera informaci\u00f3n insuficiente o menos a la que se requiere para proceder a la sig. operaci\u00f3n (registrar alg\u00fan dato, borrar registros relacionados, etc.), esto significa que tendremos que volver a consultar por lo faltante y por ende demorar en concluir la actividad.<\/p>\n<p><a href=\"https:\/\/webirix.com\/wp-content\/uploads\/2022\/12\/Opera-Captura-de-pantalla_2022-12-22_175513_www.google.com_.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-41940 aligncenter\" src=\"https:\/\/webirix.com\/wp-content\/uploads\/2022\/12\/Opera-Captura-de-pantalla_2022-12-22_175513_www.google.com_.png\" alt=\"\" width=\"184\" height=\"210\" \/><\/a><\/p>\n<h3><strong>\u00bfCu\u00e1l es el impacto del [Over\/Under]Fetching?<\/strong><\/h3>\n<p>En el caso de sistemas peque\u00f1os, implica el retorno de respuestas tard\u00edas o con informaci\u00f3n faltante que requerir\u00e1 mas validaciones y confirmaciones de recepci\u00f3n, mientras que en aquellos de mayor capacidad, con cientos de miles de peticiones concurrentes, implica un problema real, ya que no solo no tardaran mucho en responder, sino que la cola de peticiones pendientes de atender ser\u00e1 muy larga, y generara inconsistencias y cancelaciones al tratar de finalizar las transacciones\/procesos consecutivos a la petici\u00f3n realizada.<\/p>\n<p>&nbsp;<\/p>\n<h3><strong>\u00bfExiste alguna soluci\u00f3n a este problema?<\/strong><\/h3>\n<p>Una alternativa es el uso de la tecnolog\u00eda GraphQL, la cual permite que definamos la informaci\u00f3n a consultar (datos espec\u00edficos y su tipo),\u00a0 de modo que todas las consultas se concentraran en este y por ultimo recibir\u00e1s tus datos en un solo conjunto.<\/p>\n<p><a href=\"https:\/\/webirix.com\/wp-content\/uploads\/2022\/12\/Opera-Captura-de-pantalla_2022-12-22_180205_graphql.org_.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-41941 aligncenter\" src=\"https:\/\/webirix.com\/wp-content\/uploads\/2022\/12\/Opera-Captura-de-pantalla_2022-12-22_180205_graphql.org_-300x170.png\" alt=\"\" width=\"300\" height=\"170\" srcset=\"https:\/\/webirix.com\/wp-content\/uploads\/2022\/12\/Opera-Captura-de-pantalla_2022-12-22_180205_graphql.org_-300x170.png 300w, https:\/\/webirix.com\/wp-content\/uploads\/2022\/12\/Opera-Captura-de-pantalla_2022-12-22_180205_graphql.org_.png 304w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Adicionalmente tiene un soporte amplio para distintas tecnolog\u00edas:<\/p>\n<ul>\n<li>JavaScript.<\/li>\n<li>PHP.<\/li>\n<li>Lenguaje Go.<\/li>\n<li>C\/C++.<\/li>\n<li>C#\/Tecnolog\u00edas .NET.<\/li>\n<li>Lenguaje Python.<\/li>\n<\/ul>\n<p>Por ahora este seria mi post, agradezco su tiempo.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bienvenid@s, En el presente articulo se dar\u00e1n los principios de la solicitud de informaci\u00f3n a API&#8217;s, y como este impacta en el rendimiento de una aplicaci\u00f3n en internet. Conceptos b\u00e1sicos API Sus siglas vienen\u00a0 de Application\u00a0Programming\u00a0Interfaces, y no es otra cosa que un conjunto de funciones en un sistema externo a las que puedes llamar &#8230;<\/p>","protected":false},"author":4969,"featured_media":41942,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2039,2291],"tags":[2379,2374,2377,2378],"class_list":["post-41930","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-curiosidades","category-tecnologia","tag-api","tag-datos","tag-overfetching","tag-underfetching"],"jetpack_featured_media_url":"https:\/\/webirix.com\/wp-content\/uploads\/2022\/12\/imagen_2022-12-22_182038752.png","_links":{"self":[{"href":"https:\/\/webirix.com\/en\/wp-json\/wp\/v2\/posts\/41930","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webirix.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webirix.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webirix.com\/en\/wp-json\/wp\/v2\/users\/4969"}],"replies":[{"embeddable":true,"href":"https:\/\/webirix.com\/en\/wp-json\/wp\/v2\/comments?post=41930"}],"version-history":[{"count":5,"href":"https:\/\/webirix.com\/en\/wp-json\/wp\/v2\/posts\/41930\/revisions"}],"predecessor-version":[{"id":41944,"href":"https:\/\/webirix.com\/en\/wp-json\/wp\/v2\/posts\/41930\/revisions\/41944"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webirix.com\/en\/wp-json\/wp\/v2\/media\/41942"}],"wp:attachment":[{"href":"https:\/\/webirix.com\/en\/wp-json\/wp\/v2\/media?parent=41930"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webirix.com\/en\/wp-json\/wp\/v2\/categories?post=41930"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webirix.com\/en\/wp-json\/wp\/v2\/tags?post=41930"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}