Sobes.tech
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.