Sobes.tech
Middle

Existujú dva koncové body: získanie zoznamu používateľov a získanie používateľa podľa ID. Ako organizuješ typovanie odpovedí a prácu s týmito API?

sobes.tech AI

Odpoveď od AI

Для типизации ответов от двух endpoint'ов — списка пользователей и пользователя по ID — удобно определить отдельные типы данных, отражающие структуру ответа.

Например, используя TypeScript:

// Тип для одного пользователя
interface User {
  id: string;
  name: string;
  email: string;
  // другие поля
}

// Ответ с одним пользователем
interface UserResponse {
  user: User;
}

// Ответ со списком пользователей
interface UsersListResponse {
  users: User[];
  totalCount: number; // если нужно
}

Для работы с API можно создать функции, которые возвращают промисы с типизированными данными:

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();
}

Такой подход позволяет строго контролировать структуру данных, получать автодополнение и проверку типов в IDE, что снижает количество ошибок и облегчает поддержку кода.