Sobes.tech
Back to questions
Middle
2

Есть два endpoint'а: получение списка пользователей и получение пользователя по ID. Как ты организуешь типизацию ответов и работу с этими API?

Companies where asked
ТАУ Сервис

Answer from AI

sobes.tech 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, что снижает количество ошибок и облегчает поддержку кода.