Назад к вопросам
Middle
3
Есть два endpoint'а: получение списка пользователей и получение пользователя по ID. Как ты организуешь типизацию ответов и работу с этими API?
Компании, где спрашивали
ТАУ Сервис
Ответ от нейросети
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, что снижает количество ошибок и облегчает поддержку кода.