jin-frame: 再利用可能で宣言的、型安全かつ拡張可能な HTTP リクエストライブラリ。
(github.com/imjuni)axiosベースのHTTPリクエストクライアントです。HTTPリクエストをTypeScriptクラスとして定義できます。
実務では、endpointごとにtimeout、リトライ回数、リトライ方式などを異なる形で管理する必要があったり、共通パターンを書いたり、失敗した場合にロギングを追加したりと、さまざまな要件が出てきます。
axios、fetch、ky などさまざまなクライアントを使ってみましたが、こうした要件を比較的簡単に満たせるクライアントはないように感じたため、開発しました。
@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);
継承によってHookを拡張でき、timeoutやリトライ回数などをクラスごとに異なる形で管理できるため、便利に活用できます。
ぜひ使ってみて、多くのフィードバックをお願いします!
まだコメントはありません。