Allegro WebAPI – koszmar programisty
Podczas tworzenia kilku z moich niedawnych projektów, wykorzystujących Allegro WebAPI, mogę śmiało powiedzieć że jest to najgorsze API jakie przyszło mi wykorzystywać.
Co to jest WebAPI? Jest to system pozwalający, przy pomocy protokołu SOAP, na integrację naszej aplikacji z serwisem Allegro. Może wyszukiwać aukcje, wystawiać nowe, sprawdzać stan konta oraz dziesiątki innych rzeczy które wykonuje użytkownik tego serwisu.
W czym więc problem? Zapraszam do dalszej części wpisu wyjaśniającej dlaczego każde zetknięcie z tym tworem Allegro kończy się białą gorączką.
Zacznijmy od skandalicznej dokumentacji. Funkcje opisane są bardzo skąpo, na przemian w języku polskim oraz angielskim (w obrębie jednego opisu), w większości brak przykładów oraz objaśnień zwracanych wartości. Na potwierdzenie tej tezy może przemawiać fakt iż pewien czas temu serwis Allegro zorganizował konkurs na (uwaga) napisanie dokumentacji do WebAPI. Przepraszam bardzo, ale jakim cudem, nawet najbardziej uzdolniony programista ma wiedzieć jak działa czyiś twór (bez dostępu do źródeł) i jeszcze to udokumentować? Akcja ta została zbojkotowana przez liczne grono użytkowników API.
Idąc dalej, możliwości funkcji jakie zostały oddane nam do użytku są lata za możliwościami serwisu Allegro. Innymi słowy, serwis jest stale rozwijany ale WebAPI do jego obsługi już niekoniecznie. Porównując możliwości wyszukiwarki Allegro, do dostarczonej funkcji doSearch możemy odnieść wrażenie że korzystamy z Allegro lat 90‑tych.
Jeśli już przebrniemy przez kiepską dokumentację oraz zaimplementujemy potrzebne nam funkcje, przychodzi czas testów. Allegro oddaje nam do tego celu specjalną wersję swojego serwisu http://testwebapi.pl. W serwisie tym, najprościej mówiąc, możemy być niegrzecznymi chłopcami – wystawiać aukcje oraz robić co nam się podoba, po prostu testować nasze oprogramowanie. I wszystko było by w porządku, gdyby nie fakt, iż ten serwis również pozbawiony jest szeregu funkcjonalności. Przykładowo, lista kategorii jest całkowicie inna niż ta z oficjalnej strony, co uniemożliwia testowanie chociażby pól specjalnych niektórych z nich.
Wykorzystywałem Allegro WebAPI już kilka razy w swoich projektach i za każdym razem wygląda to podobnie, frustracja i szukanie w internecie jak dokładnie działa konkretna funkcja (na stronach ludzi którzy poświęcili pół życia aby ją zrozumieć).