This is a simple example of how to use the @ts-rest
library, specifically the @ts-rest/react-query
package!
We integrate with the PokeAPI with a super simple contract as seen below
import { initContract } from '@ts-rest/core';
const c = initContract();
export const pokemonApi = c.router({
getAllPokemon: {
method: 'GET',
path: '/pokemon',
query: c.body<{
limit: number;
}>(),
responses: {
200: c.response<{
count: number;
next: string;
previous: string | null;
results: {
name: string;
url: string;
}[];
}>(),
},
},
getPokemon: {
method: 'GET',
path: '/pokemon/:id',
query: null,
responses: {
200: c.response<{
id: number;
name: string;
sprites: {
front_default: string;
};
}>(),
},
},
});