У меня есть приложение PHP (, но мой вопрос не зависит от языка программирования ), которое работает с событиями календаря. События поступают из трех разных источников данных.
- База данных
- API Календаря Google
- Microsoft Graph API
При получении события из любого источника должны отображать данные в одну общую схему данных.
Сейчас у меня есть класс EventGraph
, который отвечает за вызовы API для Graph. Этот класс использует класс MapperGraph
для создания общей схемы данных. У MapperGraph
есть такой метод:
private function map(Event $graphEvent): array
{
$event = [];
$event["id"] = $graphEvent->getId();
$event["allDay"] = $graphEvent->getIsAllDay();
$event["isRecurring"] = $this->getIsRecurring($graphEvent);
// and so on...
}
В этом классе также есть несколько вспомогательных функций для преобразования сложных деталей, например getIsRecurring(...)
.
Я был в порядке с этим решением, пока не собирался реализовать создание события.
Теперь я собираюсь сделать нечто подобное, но в обратном порядке, и я чувствую, что код стал неструктурированным (имя метода map()
уже не очень хорошо). Вспомогательные функции предназначены только для работы с данными графика в качестве входных параметров.
Как бы вы решили, что это можно обслуживать? Я думаю о разделении MapperGraph
на два класса - MapperToGraph
и MapperFromGraph
.
Я пытался найти эту проблему, но я не нашел много информации о других, которые потребляют несколько API и преобразование данных в одну общую схему.
Я читал об объекте передачи данных (DTO), сериализации данных, отображении данных, преобразователях данных. Но в настоящее время я немного теряюсь в терминах и что искать ...