jin-frame: una librería de solicitudes HTTP reutilizable, declarativa, type-safe y extensible.
(github.com/imjuni)Es un cliente de solicitudes HTTP basado en axios. Permite definir solicitudes HTTP como clases de TypeScript.
En el trabajo real, a menudo surge la necesidad de gestionar de forma distinta el timeout, la cantidad de reintentos o la estrategia de reintento según cada endpoint, o de escribir patrones comunes, agregar logging en caso de fallo y cumplir con varios otros requisitos.
He usado distintos clientes como axios, fetch y ky, pero me pareció que no había uno que pudiera cubrir este tipo de necesidades con relativa facilidad, así que decidí desarrollarlo.
@Get({ host: 'https://pokeapi.co', path: '/api/v2/pokemon/:name' })
export class PokemonFrame extends JinFrame {
@Param()
declare public readonly name: string;
}
const frame = PokemonFrame.of({ name: 'pikachu' });
const reply = await frame.execute();
console.log(reply);
Mediante herencia se pueden extender los Hooks, y también es posible gestionar de forma diferente el timeout, la cantidad de reintentos, etc., para cada clase, por lo que puede usarse de manera muy práctica.
¡Pruébenlo y agradeceré mucho sus comentarios!
Aún no hay comentarios.