Aktywne Wpisy

annlupin +37
źródło: annlupin0099987
Pobierz
annlupin +4
a jakie muzyczki do wina wicowie
źródło: annlupin6789098
PobierzSkopiuj link
Skopiuj link
źródło: annlupin0099987
Pobierz
źródło: annlupin6789098
PobierzRegulamin
Reklama
Kontakt
O nas
FAQ
Osiągnięcia
Ranking
Chciałbym napisać paczkę - klient konkretnego API. Nigdy co prawda paczki nie pisałem, ale pewnie całą logikę upchnę do ServiceProvidera. Natomiast:
1. Załóżmy Allegro REST API. Zmapować funkcjami wszystkie metody API? Widziałem na losowych paczkach na GH że często jest używana magiczna metoda
__call. Ale w tym momencie funkcja zwróci obiekt rzutowany z JSONa. A co jeżeli API nie jest JSONowe? Z tym też się wiąże po części kolejne pytanie czyli...2. Co powinna zwracać taka paczka? Mając dalej Allegro, powinna zwracać jakąś strukturę, która będzie walidowana już po stronie aplikacji (np. z punktu 1 - sparsowany JSON), czy może model? Bo to by było całkiem wygodne dostać obiekty typu Auction czy User, tyle że pewnie powodowało by problemy z kompatybilnością z aplikacją.
3. Walidacja przy zapisywaniu - całość po stronie logiki aplikacji? Ogólnie, w takim wypadku paczka jest tylko głupim wrapperem i tak naprawdę niewiele ułatwia, a przy zmianie API to tragedia, bo trzeba zmieniać w wielu miejscach aplikacji, a nie tylko w paczce.
4. Co z API które są bardzo mocno niestandardowe, tj. nie są ani RESTem ani nie JSON/XML. Jak wtedy postępować?
Byłoby super jakbyście mieli przykład jakiejś dobrze napisanej paczki, która by mogła odpowiedzieć na powyższe pytania. Przykład z Allegro REST API nie jest przypadkowy, jest to nowe API które jeszcze nie ma paczki dla Larwy, a jednocześnie jest na tyle mało skomplikowane (ciągle się rozwija) że chciałbym w przyszłości spróbować napisać do niego paczuszkę.
#programowanie
@aso824: Ale co ma _call() do JSONa?
__call()przy metodach. wtedy można zawołać coś w stylu$obj->resources()i wykona się request/resources, który zwraca JSONa, a magiczna metoda od razu go dekoduje i po prostu zwraca. Mimo że to bardziej wrapper, to głównie takie paczki widziałem.