Pobieranie danych
pop
Pobiera dane z kolejki :queue_name, gdzie :queue_name może przyjmować wartości 'meta' lub 'stocks'. W treści żądania można przekazać trzy argumenty: count , testing oraz offset (tylko gdy testing=1). Parametr count jest opcjonalny i oznacza maksymalną ilość produktów, które jednorazowo zdejmujemy z kolejki. API akceptuje wartość count pomiędzy 1 i 30.
Gdy parametr testing ma wartość 1, dane nie są w rzeczywistości usuwane z kolejki oczekującej. Taki request można wykonywać wielokrotnie i za każdym razem zwraca te same dane (dane produktów z początku kolejki oczekującej).
Aby uprościć parsowanie odpowiedzi (brak konieczności dodatkowych przestrzeni nazw w XML'u), metadane POP'u zostały przeniesione do nagłówków HTTP. Wykorzystywane są do tego celu nagłówki X-eLibri-API-pop-* Gdy X-eLibri-API-pop-products-count równe jest 0, odpowiedź od serwera nie zawiera żadnych danych. Oznacza to iż pobraliśmy już wszystkie dane z kolejki. Parametr offset może być używany tylko w połączeniu z parametrem testing=1, i pozwala na przeglądanie całej kolejki, bez jej modyfikowania. Domyślnie parametr ten przyjmuje wartość 0, czyli zwracane są dane z początku kolejki.
Gdy są oczekujące dane, to system zwraca kod 200, nagłówki z informacjami o kolejce i ilości zwróconych rekordów, a także sam xml:
X-eLibri-API-pop-products-count: 20 X-eLibri-API-pop-queue-name: meta <ONIXMessage xmlns="http://www.editeur.org/onix/3.0/reference" release="3.0"> <Header> <Sender> <SenderName>Elibri.com.pl</SenderName> </Sender> <SentDateTime>20110906</SentDateTime> </Header> <Product> <!-- [...] --> </Product> <Product> <!-- [...] --> </Product> </ONIXMessage>
Gdy nie ma danych oczekujących danych, zwracany jest nagłówek informujący o tym oraz pusta odpowiedź:
X-eLibri-API-pop-products-count: 0
Jeśli wystąpi błąd, zwracany jest odpowiedni kod http i komunikat o błędzie:
Oto przykład pobrania metadanych przy użyciu curl:
curl -i -k --digest -u $ELIBRI_API_LOGIN:$ELIBRI_API_PASSWORD \ -d "count=1&testing=1" -X POST \ https://www.elibri.com.pl/api/v1/queues/meta/pop
refill_all
curl -i -k --digest -u $ELIBRI_API_LOGIN:$ELIBRI_API_PASSWORD -X POST \ https://www.elibri.com.pl/api/v1/queues/refill_all
remove
Sprawdź, jakie kolejki zostały Tobie udostępnione oraz czy są jakieś oczekujące dane produktów do pobrania.
<queues> <queue name="meta" products_count="24" last_insert_at="2011-02-05 21:02:22 UTC"/> <queue name="stocks" products_count="1500" last_insert_at="2011-02-05 21:02:22 UTC"/> </queues>
Oto przykład wywołania w curl-u:
curl -k --digest -u $ELIBRI_API_LOGIN:$ELIBRI_API_PASSWORD \ https://www.elibri.com.pl/api/v1/queues
Metoda ta pozwala powtórzyć ostnio wykonaną operację pobrania produktów. Zwraca kod 200 i zwraca ponownie wcześniej pobrane produkty, lub kod 412, jeśli wcześniej nie były pobierane żadne produkty.
Przykład wywołania w curl-u:
curl -i -k --digest -u $ELIBRI_API_LOGIN:$ELIBRI_API_PASSWORD \ https://www.elibri.com.pl/api/v1/queues/meta/last_pop
Klienci, którzy mają ustawioną subskrypcję na jedno wydawnictwo, widzą tylko jedną pozycję na liście. Reszta widzi wszystko.
<publishers> <publisher name="The MIT Press" city="Cambridge" company_name="The MIT Press" zip_code="MA 02142-1493" id="1" street="Hayward Street 55" phone1="(617) 253-5646"> <products count="2"/> </publisher> ... </publishers>
Przykład wywołania w curl-u:
curl -k --digest -u $ELIBRI_API_LOGIN:$ELIBRI_API_PASSWORD \ https://www.elibri.com.pl/api/v1/publishers
Zwracane kody http:
Przykład wywołania w curl-u:
curl -k --digest -u $ELIBRI_API_LOGIN:$ELIBRI_API_PASSWORD \ https://www.elibri.com.pl/api/v1/products/91adec74ce091edadaab