Loading...
Generate API client code from OpenAPI specs
/**
* Auto-generated TypeScript Client for Petstore API (1.0.0)
*/
export class PetstoreClient {
constructor(private baseUrl: string = 'https://petstore.swagger.io/v2') {}
/**
* List all pets
*/
async listPets(options?: { params?: Record<string, string>; body?: unknown }): Promise<Response> {
const url = new URL(this.baseUrl + '/pets');
if (options?.params) {
Object.entries(options.params).forEach(([k, v]) => url.searchParams.append(k, v));
}
return fetch(url.toString(), {
method: 'GET',
headers: { 'Content-Type': 'application/json' },
body: options?.body ? JSON.stringify(options.body) : undefined,
});
}
/**
* Create a pet
*/
async createPet(options?: { params?: Record<string, string>; body?: unknown }): Promise<Response> {
const url = new URL(this.baseUrl + '/pets');
if (options?.params) {
Object.entries(options.params).forEach(([k, v]) => url.searchParams.append(k, v));
}
return fetch(url.toString(), {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: options?.body ? JSON.stringify(options.body) : undefined,
});
}
/**
* Get pet by ID
*/
async getPetById(options?: { params?: Record<string, string>; body?: unknown }): Promise<Response> {
const url = new URL(this.baseUrl + '/pets/{petId}');
if (options?.params) {
Object.entries(options.params).forEach(([k, v]) => url.searchParams.append(k, v));
}
return fetch(url.toString(), {
method: 'GET',
headers: { 'Content-Type': 'application/json' },
body: options?.body ? JSON.stringify(options.body) : undefined,
});
}
}