Wprowadzenie
Elibri jest systemem stworzonym dla wydawnictw, które mogą za jego pośrednictwem udostępniać dane bibliograficzne wydawanych przez siebie książek. Niniejsza biblioteka jest implementacją API udokumentowanego tutaj.
Lista zmian:
12 listopada 2024 roku
- dodanie obsługi danych podmiotu odpowiedzialnego oraz ostrzeżeń o bezpieczeństwie produktów. Szczegóły w testach
ElibriOnixTest::test_publisher_safety_contact
orazElibriOnixTest::test_product_safety_features
.
23 września 2024 roku
- dodanie obsługi dwóch statusów: cancelled - gdy produkt zostaje usunięty z planu wydawniczego, oraz indefinitely_postponed - gdy publikacja została odłożona na bliżej nieokreśloną przyszłość.
20 sierpnia 2024 roku
- dodanie informacji, czy głos lektora w audiobooku jest generowany przez AI. Do
ElibriContributor
zostały dodane polaElibriContributor::$ai_generated_voice
orazElibriContributor::$voice_name
. PoleElibriContributor::$unnamed_persons
może przyjąć wartościElibriDictUnnamedPersons::SYNTHESISED_VOICE_UNSPECIFIED
lubElibriDictUnnamedPersons::SYNTHESISED_VOICE_BASED_ON_REAL_VOICE
. (patrz również testyElibriOnixTest::test_audiobook_with_ai_synthesised_voice()
orazElibriOnixTest::test_audiobook_with_ai_synthesised_cloned_voice()
w katalogutests
.
20 września 2023 roku
- usunięcie reszty kodu obsługującego dodatkowe tagi, spoza ONIX-a.
27 sierpnia 2023 roku
- dodanie nowego wyjątku,
ElibriDataAPITooManyRequestsException
, informującego o przekroczeniu dopuszczalnego dzienniego limitu requestów
5 luty 2023 roku
- dodanie języka śląskiego do listy języków
26 luty 2022 roku
- dodanie informacji o zapowiedzianych zmianach cen: $currrent_price_until, $future_cover_price, $future_price_from
16 kwiecień 2020 roku
- dodane pole $keywords zawierające listę słów kluczowych (tagów) dodanych przez wydawce.
29 stycznia 2020 roku
- dodany kod A06 dla kompozytora (ContributorRole)
19 stycznia 2020 roku
- nowe kody dla form produktów: figurka (ZB), zabawka - pluszak (ZC), zabawka edukacyjna (ZD)
19 stycznia 2020 roku
- parsowanie informacji związanych z grami planszowymi i puzzle: nowe pola doyczące ilości elementów, czasu gry oraz ilości graczy
- nowy kod dla plików dołączanych do opisu produktu ($supporting_resources) - ElibriDictResourceContentType::RULES_OR_INSTRUCTIONS
- pola table_of_contents, description, short_description, reviews, excerpts mogą zawierać tylko teksty, dla których ContentAudience jest UNRESTRICTED
9 sierpień 2019 roku
- informacja o cenie okładkowej i stawce VAT pobierana z elementu Price
- informacja o poglądzie książki drukowanej jest pobierana teraz z SupportingResource
- informacje o fragmentach cyfrowych książek są pobierane teraz z SupportingResource
- informacja o końcu licencji na produkty cyfrowe jest pobierana z PublishingDetail
- w polu isbn13_with_hyphens jest teraz wartość isbn bez kresek, ponieważ pole <elibri:HyphenatedISBN> zostanie wkrótce usunięte
30 lipca 2019 roku
- Naprawione parsowanie SupplyDetails (dzięki uprzejmości Sebastiana Tatarczucha)
- Dodane pole $proximity_name (wartości 'EXACTLY' albo 'MORE_THAN' - informują o dokładności wartości w polu $on_hand
- Dodane pole $thema_subjects, które jest listą kategorii Thema
Instalacja
Proszę instalować bibliotekę bezpośrednio ze źródeł z github-a.
Użycie biblioteki
Żeby używać API należy najpierw uzyskać login i hasło dostępowe. Proszę pisać w tym celu na adres konta. kt@e libri .com .pl
Ogólne założenia API są opisane tutaj. Proszę też spojrzeć na poniższe przykłady.
Przykłady użycia
Użycie biblioteki jest bardzo proste. W poniższych przykładach zakładamy, że login i hasło są przechowywane jako zmienne środowiskowe ELIBRI_API_LOGIN i ELIBRI_API_PASSWORD. Wszystkie przykłady można znaleźć w katalogu examples
Przykład 1
W poniższym przykładzie instancjujemy obiekt klasy ElibriAPI oraz pobieramy listę dostępnych kolejek wraz z informacją o ilości produktów znajdujących w każdej z kolejek. Podczas połączenia może wystąpić jeden z wyjątków
Przykład 2
Typowe użycie API Elibri to regularne pobieranie nowych danych - w kolejce meta znajdą się zarówno nowododane produkty, jak i te, których dane się zmieniły. Wiadomość otrzymana z serwera to instancja ElibriOnixMessage, która zawiera listę produktów - ElibriProduct. Po Twojej stronie jest wykrycie, które dane się zmieniły. Żeby jednak ułatwić to zadanie, udostępniamy przy linkach, tekstach oraz autorach ich wewnętrzne ID w bazie Elibri. Pozwala to łatwiej sprawdzić, które dane uległy zmianie.
Przykład 3
Poniżej pobieramy listę wszystkich wydawnictw dostępnych w systemie, po czym drukowana jest informacja o pierwszym wydawnictwie, i pobierane dane pierwszej książki tego wydawnictwa.