axios기반 HTTP request client 입니다. HTTP request를 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, 재시도 횟수 등을 클래스 별로 다르게 관리할 수 있어서 유용하게 사용할 수 있습니다.

사용해보시고, 많은 피드백 부탁드립니다!