jin-frame: Thư viện HTTP request có thể tái sử dụng, khai báo, an toàn kiểu và có thể mở rộng.
(github.com/imjuni)Đây là một HTTP request client dựa trên axios. Bạn có thể định nghĩa HTTP request bằng các lớp TypeScript.
Trong quá trình làm việc thực tế, thường sẽ có nhiều yêu cầu như quản lý khác nhau theo từng endpoint cho timeout, số lần retry, cách thức retry, hoặc viết các mẫu dùng chung, thêm logging khi thất bại, v.v.
Tôi đã dùng nhiều client khác nhau như axios, fetch, ky, nhưng dường như không có client nào có thể đáp ứng những yêu cầu này một cách tương đối dễ dàng, nên tôi đã phát triển thư viện này.
@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);
Bạn có thể mở rộng Hook thông qua kế thừa, đồng thời quản lý khác nhau theo từng lớp các thiết lập như timeout, số lần retry, nên có thể sử dụng rất hữu ích.
Hãy dùng thử và rất mong nhận được nhiều phản hồi từ mọi người!
Chưa có bình luận nào.