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