Ответ
Обычно использую паттерн Repository или Service слои для работы с API.
Пример с Repository:
class UserRepository {
async getUsers(): Promise<User[]> {
const response = await fetch('/api/users');
return response.json();
}
async createUser(user: UserDto): Promise<void> {
await fetch('/api/users', {
method: 'POST',
body: JSON.stringify(user)
});
}
}
Плюсы:
- Изоляция логики API от компонентов
- Легко мокать в тестах
- Централизованное управление запросами
Для сложных приложений можно добавить слой сервисов поверх репозиториев.