Middle
Existují dva endpointy: získání seznamu uživatelů a získání uživatele podle ID. Jak organizujete typizaci odpovědí a práci s těmito API?
sobes.tech AI
Odpověď od AI
Pro typizaci odpovědí ze dvou endpointů — seznamu uživatelů a uživatele podle ID — je vhodné definovat samostatné datové typy odrážející strukturu odpovědi.
Například pomocí TypeScript:
// Typ pro jednoho uživatele
interface User {
id: string;
name: string;
email: string;
// další pole
}
// Odpověď s jedním uživatelem
interface UserResponse {
user: User;
}
// Odpověď se seznamem uživatelů
interface UsersListResponse {
users: User[];
totalCount: number; // pokud je potřeba
}
Pro práci s API můžete vytvořit funkce, které vracejí promise s typovanými daty:
async function fetchUserById(id: string): Promise<UserResponse> {
const response = await fetch(`/api/users/${id}`);
return response.json();
}
async function fetchUsersList(): Promise<UsersListResponse> {
const response = await fetch('/api/users');
return response.json();
}
Tento přístup umožňuje přísnou kontrolu struktury dat, získání autocompletion a kontroly typů v IDE, což snižuje počet chyb a usnadňuje údržbu kódu.