Middle
Es gibt zwei Endpunkte: die Liste der Benutzer abrufen und einen Benutzer nach ID abrufen. Wie würdest du die Typisierung der Antworten und die Arbeit mit diesen APIs organisieren?
sobes.tech KI
Antwort von 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, что снижает количество ошибок и облегчает поддержку кода.