Как преобразовать данные из нескольких API в одну общую схему данных - PullRequest
0 голосов
/ 24 марта 2020

У меня есть приложение PHP (, но мой вопрос не зависит от языка программирования ), которое работает с событиями календаря. События поступают из трех разных источников данных.

  1. База данных
  2. API Календаря Google
  3. 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), сериализации данных, отображении данных, преобразователях данных. Но в настоящее время я немного теряюсь в терминах и что искать ...

...