Какой подход используешь для организации слоя доступа к данным

«Какой подход используешь для организации слоя доступа к данным» — вопрос из категории Архитектура, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Обычно использую паттерн 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 от компонентов
  • Легко мокать в тестах
  • Централизованное управление запросами

Для сложных приложений можно добавить слой сервисов поверх репозиториев.