Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Integracja z zewnętrznym serwisem
Forum PHP.pl > Forum > PHP > Object-oriented programming
pieknymacius
Cześć! Pracuję właśnie nad integracją mojej aplikacji z zewnętrznym serwisem (REST API). Serwis udostępnia szereg endpointów, część z nich przyjmuje duże struktury danych. Chciałem zapytać bardziej doświadczonych kolegów, jak dobrze zaprojektować takie połączenie. Chciałbym uniknąć sytuacji, gdzie za każdym razem robię coś takiego:

  1. $client = new GuzzleHttp\Client();
  2.  
  3. // pobranie danych z bazy
  4.  
  5. $data = [
  6. // tutaj tworzenie struktury z pobranych danych
  7. ]
  8.  
  9. $res = $client->request('POST', 'https://api.foo/bar', [
  10. 'json' => $request
  11. ]);
  12.  
  13. // wyciągnięcie danych z odpowiedzi


Zdaję sobie sprawę, że trzeba rozbić to na klasy. Niestety nie wiem, jak zrobić to dobrze. Myślałem, żeby utworzyć klasy dla każdego typu requesta i responsa oraz klasę klienta, która by je wykorzystywała. Jak Wy to zazwyczaj robicie? Czy macie jakieś dobre przykłady podobnych implementacji?
LowiczakPL
Cytat
Zdaję sobie sprawę, że trzeba rozbić to na klasy. Niestety nie wiem, jak zrobić to dobrze. Myślałem, żeby utworzyć klasy dla każdego typu requesta i responsa oraz klasę klienta, która by je wykorzystywała. Jak Wy to zazwyczaj robicie? Czy macie jakieś dobre przykłady podobnych implementacji?


Raczej jedna klasa kontrolera zawierająca wiele metod korzystających z managera zajmującego się obsługą danych.

W sumie zależy też jak bardzo rozbudowane jest to API ile udostępnia połączeń, to wtedy można podzielić to na kilka klas pogrupowanych tak jak API, najlepiej 1:1
pieknymacius
Cytat(LowiczakPL @ 24.04.2018, 23:02:38 ) *
Raczej jedna klasa kontrolera zawierająca wiele metod korzystających z managera zajmującego się obsługą danych.

W sumie zależy też jak bardzo rozbudowane jest to API ile udostępnia połączeń, to wtedy można podzielić to na kilka klas pogrupowanych tak jak API, najlepiej 1:1


Czy mógłbyś rozwinąć? Manager miałbym wyciągać dane z bazy i przygotowywać odpowiednie struktury w zależności od rodzaju requesta? Myślę, że API jest całkiem rozbudowane - stąd moje pytanie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2020 Invision Power Services, Inc.