Small TypesScript http client based on decorators
Declare class
@Http('https://example.com/api/v2')
class API {
@Get('users')
public async getUsers(@Response(ResponseType.Json) response?: JSONObject): Promise<User[]> {
return response as unknown as User[];
}
@Get('users/:id')
public async getUser(@Param('id') id?: number, @Response(ResponseType.Json) response?: JSONObject): Promise<User> {
return response as unknown as User;
}
}
Make request
const api = new API();
const users = await api.getUsers();
const user = await api.getUser(9);
See tests for more examples