APIs nativas de web: 10 alternativas a librerías populares de JS
Fetch reemplaza a Axios, jQuery.ajax y otras librerías similares. Disponible desde 2017 en todos los navegadores modernos, soporta promesas, streaming y todos los métodos HTTP.
Ejemplo con Axios:
import axios from 'axios';
const api = axios.create({
baseURL: 'https://api.example.com',
timeout: 5000,
headers: { 'Content-Type': 'application/json' }
});
const { data: users } = await api.get('/users');
Alternativa nativa:
const BASE_URL = 'https://api.example.com';
const res = await fetch(`${BASE_URL}/users`);
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const users = await res.json();
const res2 = await fetch(`${BASE_URL}/users`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ name: 'Marvel', role: 'developer' })
});
const newUser = await res2.json();
Para cancelar solicitudes, usa AbortController:
const controller = new AbortController();
fetch('/api/data', { signal: controller.signal });
controller.abort();
Cuándo usar librerías: en proyectos grandes que requieren interceptores, lógica de reintento o autenticación centralizada.
FormData para serialización de formularios
FormData automatiza la recopilación de datos de formularios, incluyendo archivos, sin necesidad de análisis manual. Disponible desde 2015.
En lugar de manejar manualmente:
const formData = new FormData(form);
form.addEventListener('submit', async (e) => {
e.preventDefault();
await fetch('/api/upload', {
method: 'POST',
body: formData
});
});
Creación programática:
const formData = new FormData();
formData.append('name', 'Marvel');
formData.append('avatar', fileInput.files[0]);
El navegador establece automáticamente multipart/form-data con un límite.
Limitaciones: no incluye validación integrada ni gestión de estado de formularios multietapa — aquí es mejor usar React Hook Form o Formik.
URL y URLSearchParams para análisis de enlaces
Las clases nativas URL y URLSearchParams reemplazan expresiones regulares y librerías como URL.js. Soporte completo desde 2018.
const url = new URL('https://example.com/search?q=web+apis&page=2&sort=recent#results');
url.hostname; // 'example.com'
url.searchParams.get('q'); // 'web apis'
url.searchParams.set('page', '3');
url.searchParams.append('filter', 'new');
console.log(url.toString());
Creación de cadenas de consulta:
const params = new URLSearchParams({ q: 'hello world', page: '1' });
params.toString(); // 'q=hello+world&page=1'
Codificación y decodificación automáticas evitan errores de análisis.
API de Popover para elementos flotantes
Desde enero de 2025 (Chrome 114+, Firefox 125+, Safari 17+), la API de Popover permite tooltips, menús desplegables y popovers sin necesidad de Floating UI o Tippy.js.
Marcado HTML:
<button popovertarget="my-popover">Mostrar popover</button>
<div id="my-popover" popover>Contenido del popover</div>
Control programático:
const popover = document.querySelector('#my-popover');
popover.showPopover();
popover.hidePopover();
Estilo:
#my-popover:popover-open {
animation: fadeIn 0.2s ease-out;
}
#my-popover::backdrop {
background: rgba(0, 0, 0, 0.15);
}
Soporte integrado para capa superior, cierre ligero (Esc/clic fuera), trampa de foco y navegación por teclado.
popover="auto" — cierre automático, popover="manual" — cierre explícito.
Cuándo son mejores las librerías: cuando se necesita posicionamiento preciso con middleware (flip, shift).
Beneficios de las APIs nativas
Cambiar a interfaces integradas ofrece:
- Tamaño de paquete cero — las APIs forman parte del motor del navegador
- Rendimiento — ejecución fuera del hilo principal cuando es posible
- Mantenimiento — actualizaciones directas de los fabricantes del navegador
- Compatibilidad — funciona en Node.js (donde está disponible)
- Menos vulnerabilidades — sin código de terceros
Lo que realmente importa
- Las APIs nativas cubren entre el 80% y el 90% de tareas comunes, reduciendo dependencias
- Fetch + AbortController reemplazan completamente clientes HTTP básicos
- FormData maneja el 95% de escenarios de carga de formularios sin librerías
- URLSearchParams elimina errores de análisis relacionados con expresiones regulares
- La API de Popover estandariza componentes de interfaz accesibles
Estas interfaces permiten optimizar proyectos intermedios a avanzados sin sacrificar funcionalidad.
— Editorial Team
Aún no hay comentarios.