Sobes.tech
Middle
34

Yra du galiniai taškai: vartotojų sąrašo gavimas ir vartotojo gavimas pagal ID. Kaip organizuotumėte atsakymų tipizaciją ir darbą su šiais API?

Įmonės kur klausė
ТАУ Сервис

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