Libreka! E-Book-Data E-Book Remote-Schnittstelle Technische Spezifikation - (finale Version; Stand Januar 2015)

Die Seite wird erstellt Arthur Hübner
 
WEITER LESEN
Libreka! E-Book-Data E-Book Remote-Schnittstelle Technische Spezifikation - (finale Version; Stand Januar 2015)
libreka! E-Book-Data
E-Book Remote-Schnittstelle

Technische Spezifikation
(finale Version; Stand Januar 2015)

libreka! E-Book-Data           S. 1 von 34
E-Book Remote -Schnittstelle
technische Spezifikation
(Stand: Januar 2015)
Libreka! E-Book-Data E-Book Remote-Schnittstelle Technische Spezifikation - (finale Version; Stand Januar 2015)
Inhalt
1.  Einführung ........................................................................................................... 3
2.  Voraussetzungen ................................................................................................ 3
3.  Einbindung der bibliographischen Daten in den Online-Shop ............................. 4
  3.1 Datenserver ................................................................................................... 4
    3.1.1 Initialimport.............................................................................................. 4
    3.1.2 Shopaktualisierung ................................................................................. 5
  3.2 E-Book-Informationen auslesen .................................................................... 5
    3.2.1 E-Book-ISBN........................................................................................... 7
    3.2.2 Frühester Ankündigungstermin ............................................................... 8
    3.2.3 Erstverkaufstag ....................................................................................... 8
    3.2.4 E-Book Typ ............................................................................................. 8
    3.2.5 DRM-Einstellung des E-Books ................................................................ 8
    3.2.6 Anwenderbeschränkungen (Kopierschutz / Drucken) ............................. 9
    3.2.7 Cover .................................................................................................... 10
    3.2.8 Leseproben ........................................................................................... 11
    3.2.9 Downloadzeitraum bzw. maximale Downloadanzahl ........................... 12
    3.2.10 Verkaufshinweise des Verlags .............................................................. 13
    3.2.11 Verkaufsrechte ...................................................................................... 13
    3.2.12 Preisinformationen ................................................................................ 14
  3.3 E-Books in mehreren Formaten & Produktverknüpfungen .......................... 17
  3.4 Hinweis zur Warengruppensystematik ........................................................ 18
  3.5 Hinweis zur thema-Klassifikation in ONIX 2.1 ............................................. 20
    3.5.1 Die thema-Klassifikation in ONIX 2.1 .................................................... 20
    3.5.2 thema-Version....................................................................................... 22
    3.5.3 Weiterführende Informationen............................................................... 22
4. Einbindung der Schnittstelle .............................................................................. 23
  4.1 Schnittstelle ................................................................................................. 23
    4.1.1 Live-Schnittstelle ................................................................................... 23
    4.1.2 Test-Schnittstelle .................................................................................. 23
  4.2 Parameter und Verschlüsselung ................................................................. 23
    4.2.1 Initialisierungsvektor und Padding Live-Schnittstelle ............................ 24
    4.2.2 Initialisierungsvektor und Padding Test-Schnittstelle ............................ 24
  4.3 Funktionen................................................................................................... 24
    4.3.1 Funktion checkISBN ............................................................................. 25
    4.3.2 Funktion placeEbookOrder ................................................................... 27
    4.3.3 Funktion getEbookDownload ................................................................ 30
    4.3.4 Funktion getDownload .......................................................................... 31
  4.4 Fehlermeldungen......................................................................................... 32
5. Kontakt .............................................................................................................. 34

libreka! E-Book-Data                                 S. 2 von 34
E-Book Remote -Schnittstelle
technische Spezifikation
(Stand: Januar 2015)
Libreka! E-Book-Data E-Book Remote-Schnittstelle Technische Spezifikation - (finale Version; Stand Januar 2015)
1. Einführung

Über die E-Book-Distributionsplattform libreka! werden E-Books an Handelspartner
ausgeliefert, um auf deren Online-Shops verkauft zu werden. Die Auslieferung erfolgt
in diesem Fall über die Schnittstelle „E-Book-Data“.

Damit Shop-Anbieter über die Schnittstelle der libreka! Distributionsplattform
verfügbare E-Books anbieten können, sind zwei Dinge erforderlich:
    der Verkäufer benötigt eine Übersicht der verfügbaren E-Books
    der Verkäufer muss auf eine Schnittstelle zugreifen können, welche die
      E-Books für den Download bereitstellt.

Im weiteren Verlauf der Spezifikation werden diese Anforderungen näher erläutert.

2. Voraussetzungen
Voraussetzung für die Nutzung der E-Book Remote-Schnittstelle                 ist   ein
unterzeichneter Vertrag (libreka! E-Book-Data Remote Delivery).

Nach Unterzeichnung des Vertrags erhält der Online-Shop von der MVB:
   Zugangsdaten zum Aufruf der E-Book Remote-Schnittstelle / zur Generierung
      der Links (MVB-Kennnummer, Key)
   Token zum Abruf von Cover- und Mediendateien (3.2.7 Cover; 3.2.8
      Leseproben)
   Zugangsdaten zum FTP-Server: Auf diesem Server liegt tagesaktuell eine
      ONIX-Datei der lieferbaren E-Books zur Abholung bereit

Für einen Kundendownload werden über den Online-Shop des Buchhändlers
Kundendaten erfasst. Die Daten werden für den Kauf verschlüsselt an die
Schnittstelle übergeben. Sobald ein autorisierter Händler alle notwendigen Daten an
libreka! übermittelt hat, stellt die Schnittstelle den Link zum generierten E-Book zur
Verfügung.
Das E-Book wird je nach entsprechender Vorgabe des Verlags ohne oder mit einem
Kopierschutz (Adobe-DRM oder digitales Wasserzeichen) bereitgestellt.

libreka! E-Book-Data                S. 3 von 34
E-Book Remote -Schnittstelle
technische Spezifikation
(Stand: Januar 2015)
3. Einbindung der bibliographischen Daten in den Online-Shop
Für die Darstellung eines Titels in Ihrem Online-Shop benötigen Sie die jeweilige
ISBN sowie die bibliographischen Angaben und E-Book-Informationen.
Die aktuellen E-Book-Titelinformationen werden Ihnen in Form einer ONIX-Datei auf
einem Datenserver bereitgestellt.

3.1 Datenserver
Die Zugangsdaten für den Datenserver lauten:
      Host: [Angabe zum Servernamen folgt noch]
      Port: 21
Personifizierte Login-Daten werden Ihnen nach Unterzeichnung des Vertrages
mitgeteilt.
Nach Anmeldung auf dem Datenserver erhalten Sie folgende Verzeichnisansicht:
     /public/LibrekaEbooks
     /public/LibrekaEbooks2
     /public/LibrekaEbooksExt1 (internationale Titel vom Partner „Gardners“)
     /public/LibrekaEbooksExt2 (internationale Titel vom Partner „Overdrive“)

Hinweis: Der Zugriff auf die Ordner richtet sich nach den entsprechenden
vertraglichen Vereinbarungen. Über dieses FTP-Verzeichnis werden zukünftig noch
weitere Datenfeeds internationaler Titel in separaten Ordnern bereitgestellt werden.

Die Ordnerinhalte sind alle nach dem gleichen Prinzip aufgebaut, d.h. es gibt einen
Gesamt-Feed „LIBREKA_EBOOK.xml“ sowie die inkrementellen Dateien
LIBREKA_EBOOK_NEW.xml,                 LIBREKA_EBOOK_UPDATE.xml                 und
LIBREKA_EBOOK_DELETE.xml. Die nächsten Schritte „Initialimport“ und
„Shopaktualisierung“ sind auf alle Feeds anzuwenden.

3.1.1 Initialimport
Ein Gesamt-Feed „LIBREKA_EBOOK.xml“ wird einmal wöchentlich erstellt. Da diese
XML-Datei eine große Menge an Daten enthält, wird diese in eine *.gz-Datei gepackt
und auf dem FTP-Server im Archivordner nach Version abgelegt. Die Version des
Gesamt-Feeds kann aus der Datei „versionFull.txt“ ausgelesen werden.
Beispiel: archive/[version].

libreka! E-Book-Data                S. 4 von 34
E-Book Remote -Schnittstelle
technische Spezifikation
(Stand: Januar 2015)
3.1.2 Shopaktualisierung
Nach Ihrer Anmeldung erhalten Sie direkten Zugriff auf die inkrementellen Feeds:
    LIBREKA_EBOOK_DELETE.xml  beinhaltet E-Books, die von libreka! nicht
      mehr angeboten werden und auch aus Ihrem Shop entfernt werden müssen
    LIBREKA_EBOOK_NEW.xml  beinhaltet auf libreka! neu verfügbare E-
      Books; diese müssen in den Shop aufgenommen werden
    LIBREKA_EBOOK_UPDATE.xml  beinhaltet aktualisierte E-Books
      (aktualisierte bibliographische    Daten      sowie     Preisinformationen /
      Coverinformationen) – der Shop muss entsprechend aktualisiert werden

Die inkrementellen Feeds werden täglich aktualisiert. Die aktuelle Version kann
anhand der Datei „version.txt“ ermittelt werden – in der Datei „version.xml“ ist auch
die Anzahl der Titel in den inkrementellen Dateien enthalten (Achtung: die
Gesamtsumme bezieht sich hier auf alle Titel in den inkrementellen Dateien).

Die jeweilige Version des Vortags werden in einem Archivordner nach Versionen für
einen Monat gespeichert. Beispiel: archive/[version].

Um Dateninkonsistenzen zu vermeiden, müssen die drei Tagesdateien in der unten
stehenden Reihenfolge verarbeitet werden:
   1. Löschmeldungen: LIBREKA_EBOOK_DELETE.xml
   2. Neuzugänge: LIBREKA_EBOOK_NEW.xml
   3. Updates: LIBREKA_EBOOK_UPDATE.xml

Bitte beachten:
Ihr Online-Shop muss täglich aktualisiert werden. Das Datenvolumen der
Gesamtbestandsdatei ist sehr hoch, daher stellt libreka! inkrementelle
Aktualisierungsdateien zu Verfügung.
Wir empfehlen Ihnen nach dem Initialimport des Gesamtbestandes auf die
Aktualisierungsdateien zuzugreifen – jedoch regelmäßig (mindestens einmal im
Monat) einen Neuimport mit der Gesamtdatei durchzuführen.

3.2 E-Book-Informationen auslesen
Die XML-Dateien werden im ONIX-Format bereitgestellt. Die von libreka! ergänzten
sowie die für die Anzeige notwendigen Felder werden im Folgenden beschrieben.

Weitere Informationen zu ONIX (Tag-Beschreibungen und mögliche Werte) finden
Sie auch auf der Homepage von EDItEUR: http://www.editeur.org/

Für die Darstellung des E-Books auf Ihrer Website müssen folgende Informationen
ausgelesen und den Endkunden angezeigt werden, sofern diese Informationen über
die XML-Datei mit geliefert werden:
libreka! E-Book-Data                S. 5 von 34
E-Book Remote -Schnittstelle
technische Spezifikation
(Stand: Januar 2015)
    Titel
         Verlag
         Autor
         ISBN13
         Erstverkaufstag
         Erscheinungsdatum
         E-Book-Typ
         DRM-Einstellung
         Cover
         Leseproben
         Downloadrestriktionen
         Verkaufshinweis des Verlags / E-Book Endkundeninformation
         Preisinformationen
         Inhaltliche Beschreibung

Beispiel Kurzansicht in einer Trefferliste:

Quelle: libreka!

Beispiel Detailansicht eines Titels:

libreka! E-Book-Data                   S. 6 von 34
E-Book Remote -Schnittstelle
technische Spezifikation
(Stand: Januar 2015)
Quelle libreka!

Diese Informationen werden in den XML-Feeds übermittelt. Bitte lesen Sie diese wie
folgt beschrieben ein:

3.2.1 E-Book-ISBN

Die ISBN-13 eines E-Books befindet sich im ONIX-Tag . Hierzu muss das
multiple Tag  mit 15 befüllt sein.

Beispiel:

       15
       9783765729034

Bei den angeschlossenen internationalen Partnern kann anstatt ISBN-13 auch EAN
(GTIN-13) mit dem Code 03 in  gesendet werden.

Beispiel:

       03
       9780141901206

libreka! E-Book-Data                S. 7 von 34
E-Book Remote -Schnittstelle
technische Spezifikation
(Stand: Januar 2015)
Das E-Book ist außerdem mit der Produktform „DG“, welche in  hinterlegt ist,
gekennzeichnet. Beispiel: DG => der Titel ist ein E-Book.

3.2.2 Frühester Ankündigungstermin

Sofern im ONIX-Composite  () ein Datum übergeben
wird, darf dieser Titel erst ab diesem Datum im Shop angezeigt werden.
Beispiel: < b086>20121210  Ab dem 10.12.2012 darf der Titel im Shop
dargestellt werden.

3.2.3 Erstverkaufstag

Sofern im ONIX-Composite  () ein Datum übergeben wird, darf
dieser Titel erst ab diesem Datum zum Kauf angeboten werden.
Beispiel: 20121214  Erstverkaufstag 14.12.2012

Bitte beachten: Bei Vernachlässigung des OnSaleDate kann es zu Abmahnungen
von Seiten der Verlage kommen - hierfür haftet dann der Händler.

3.2.4 E-Book Typ

Der E-Book-Typ (PDF, epub) ist ebenfalls im ONIX-Datensatz im Feld 
hinterlegt. Beispiel:
002  PDF
029  epub

3.2.5 DRM-Einstellung des E-Books

Die DRM-Einstellung eines Titels finden Sie im Tag . Mögliche Werte:
02  digitales Wasserzeichen [Social-DRM]
03  Adobe DRM [Hard-DRM]
00  kein DRM

Hinweis:
Social-DRM: E-Books mit dieser Kennzeichnung werden mit einem digitalen
Wasserzeichen geschützt. Der Kunde kann dieses E-Book auf eine unbegrenzte
Anzahl von Endgeräten kopieren.

libreka! E-Book-Data               S. 8 von 34
E-Book Remote -Schnittstelle
technische Spezifikation
(Stand: Januar 2015)
Hard-DRM: E-Books mit dieser Kennzeichnung werden mit Adobe-DRM geschützt,
d.h. es besteht die Möglichkeit das E-Book auf max. 6 Endgeräte zu spielen –
Drucken ist hier generell nicht möglich.
Adobe-DRM-geschützte E-Books können nur mit dem Programm Adobe Digital
Editions (ADE) geöffnet und gelesen werden (Alternativen zu ADE werden jedoch
nicht ausgeschlossen).
Ungeschützte Dateien können mit jeder passenden Software oder Hardware gelesen
werden (z.B. ADE, Adobe Reader, Sony Reader…). Informationen zu Adobe Digital
Editions finden Sie hier: http://www.adobe.com/de/products/digitaleditions/

3.2.6 Anwenderbeschränkungen (Kopierschutz / Drucken)

Im Datenfeed der internationalen Titel können zusätzlich Informationen zum
Kopierschutz (Kopieren/ Drucken) eines Titels angegeben sein. Diese Informationen
werden im multiplen Tag  hinterlegt. Für die Anwenderbeschränkungen
wird das Tag  mit dem Wert 25 befüllt, d.h. in dem Tag-Bereich 
sind die Anwenderbeschränkungen zu finden.

libreka! E-Book-Data              S. 9 von 34
E-Book Remote -Schnittstelle
technische Spezifikation
(Stand: Januar 2015)
25
  00
  Usage constraints: Copy: Enabled. Selections: 37. Interval: 7 days. Print: Enabled.
Selections: 37. Interval: 7 days.

Übersetzung / Auswertung von :

Usage constraints [Anwenderbeschränkungen]:

Funktion                  Status            Selections                Interval

Copy [Kopieren] Enabled = aktiv             Anzahl der                Zeitspanne
                                            Kopiermöglichkeiten
Print [Drucken]           Enabled = aktiv   Anzahl der                Zeitspanne
                                            Druckmöglichkeiten

3.2.7 Cover

Im Datenfeed stellen wir Ihnen eine Miniaturansicht des Covers zur Verfügung –
dieses finden Sie im ONIX-Datensatz unter:

      07
      03
      01
      [URL] 

Das Cover wird auch im vom Verlag angelieferten Format bereitgestellt – dieses
finden Sie im ONIX-Datensatz unter:

   04
   03
   01
   [URL]

Für den Aufruf der URLs muss der von uns bereit gestellte Token an die URL
angehängt werden  [URL]&[Token]; erst dann wird die Miniaturansicht bzw. das
Cover angezeigt.

libreka! E-Book-Data                        S. 10 von 34
E-Book Remote -Schnittstelle
technische Spezifikation
(Stand: Januar 2015)
Bitte beachten:
Öffnen und verarbeiten Sie die ONIX-Datei mit einem XML-Editor. Die Datei kann
Sonderzeichen (Bsp. „&“) enthalten, die mit einem anderen Editor nicht korrekt
interpretiert werden (Bsp. „&“ statt &).

Über eine separate Cover-API lassen sich auch Cover in weiteren Größen abrufen.

Größe Höhe Breite Kommentar                                   Dateiname
S     90   x      Breite proportional zur Höhe                ISBN13_s.jpg

M           200        x       Breite proportional zur Höhe   ISBN13_m.jpg

L           x          599     Höhe proportional zur Breite   ISBN13_l.jpg

            x          x       Originalgröße des Covers im VLB ISBN13.jpg

Die Cover-API ist ein Bestandteil der VLB-REST-API. Die Beschreibung für die
Einbindung finden Sie in der VLB-REST-API-Spezifikation unter:
http://info.vlb.de/files/vlb_rest_api_anwenderspezifikation.pdf
In der Einleitung sind die relevanten Kapitel für den Abruf eines Covers aufgeführt.
Für die Verwendung der Cover-API ist ebenfalls der für den Shop eingerichtete
Token notwendig.

3.2.8 Leseproben

Die Leseproben werden per URL im XML-Feed angegeben.

Die URL zur Leseprobe finden Sie im ONIX-Datensatzfeld  unter .
Das Tag  ist multipel und kann mehrfach im ONIX-Datensatz enthalten
sein – für die Information entscheidend ist der Wert im Tag .
Für die Leseprobe wird das Tag  mit dem Wert 23 befüllt, d.h. dass in dem
Tag-Bereich  die Leseprobe zu finden ist.

Das Format der Leseprobe wird im Tag  angegeben – mögliche Werte:
    14  epub-Datei
    08  PDF-Datei

libreka! E-Book-Data                      S. 11 von 34
E-Book Remote -Schnittstelle
technische Spezifikation
(Stand: Januar 2015)
Der Verweistyp zur Leseprobe wird im Tag  angegeben – mögliche Werte
     01  URL

Die URL zur Leseprobe wird im Tag  angegeben.

Beispiel:

    23
    08
    01
    [URL]

Für den Aufruf der URL muss der von uns bereit gestellte Token an die URL
angehängt werden  [URL]&[Token]; erst dann kann die Leseprobe geöffnet
werden.

Die Medien-API ist ein Bestandteil der VLB-REST-API. Die Beschreibung für die
Einbindung finden Sie in der VLB-REST-API-Spezifikation unter:
http://info.vlb.de/files/vlb_rest_api_anwenderspezifikation.pdf
In der Einleitung sind die relevanten Kapitel für den Abruf von Mediendateien
aufgeführt. Für die Verwendung der Medien-API ist ebenfalls der für den Shop
eingerichtete Token notwendig.

Hinweis:
Die Leseprobe als PDF beinhaltet die ersten 5-15 Seiten eines E-Books.
Die Leseprobe als epub beinhaltet maximal die ersten 10% eines E-Books.

3.2.9 Downloadzeitraum bzw. maximale Downloadanzahl

Nach Kauf eines E-Books wird für den Kunden ein personifiziertes E-Book
bereitgestellt. Dieses hat einen begrenzten Downloadzeitraum, der im ONIX-Tag
 übermittelt wird.
Das Tag  ist multipel und kann mehrfach im ONIX-Datensatz enthalten
sein – für die Information entscheidend ist der Wert im Tag .
Für die Information zum Downloadzeitraum wird das Tag  mit dem Wert 21
befüllt, d.h. in dem Tag-Bereich  ist der Downloadzeitraum zu finden.

  21
  00
  Maximaler Downloadzeitraum: 24 Monate

libreka! E-Book-Data              S. 12 von 34
E-Book Remote -Schnittstelle
technische Spezifikation
(Stand: Januar 2015)
21
  00
   Maximaler Downloadzeitraum: 6 Monate

  21
  00
  Maximale Downloadanzahl: 3 Downloads

3.2.10 Verkaufshinweise des Verlags

Verkaufshinweise des Verlags zu einem E-Book übermittelt libreka! über den XML-
Feed. Der Verkaufshinweis muss für den Endkunden bei der Produktdarstellung
sichtbar angezeigt werden (sofern dieser über die ONIX-Datei übermittelt wird). Die
Information befindet sich im Tag .
Darunter gibt es folgende Tags, welche die Information noch einmal kennzeichnen:
       Code 18
       Variabler Text
       URL

Beispiel:
         
                18
                E-Book Endkundennutzungsbedingungen des Verlags
                [URL]
         
3.2.11 Verkaufsrechte

Die vom Verlag eingestellten Verkaufsrechte zu einem E-Book werden mit dem
XML-Feed übermittelt. Bevor ein Titel zum Verkauf im Shop angeboten wird, muss
abgeprüft werden, ob und welche Verkaufsrechte vorliegen.
Diese Information befindet sich im Tag . Das Tag ist optional, d.h. es
kann, muss aber nicht vorhanden sein; nicht alle Verlage haben bisher die
Verkaufsrechte gemeldet. Neben der Kennzeichnung der Rechte werden auch die
betreffenden Verkaufsgebiete oder Länder übergeben.

libreka! E-Book-Data                 S. 13 von 34
E-Book Remote -Schnittstelle
technische Spezifikation
(Stand: Januar 2015)
Die Kennzeichnung der Rechte ist im Tag  zu finden – mögliche Werte:
    01: uneingeschränkter Verkauf mit exklusiven Rechten in den angegeben
      Ländern oder Gebieten
    02: uneingeschränkter Verkauf mit nicht-exklusiven Rechten in den
      angegeben Ländern oder Gebieten
    03: nicht zum Verkauf in den angegeben Ländern oder Gebieten
Neben der Rechtekennzeichnung werden die Verkaufsgebiete oder Länder
angegeben.
     Verkaufsgebiete  ; mögliche Werte
          WORLD: weltweit
          ECZ: Eurozone
          ROW: Rest of world
          usw.

         Angabe der Länder  ; mögliche Werte
             DE
             AT
             CH
             usw.

         Beispiele 1:
         
           01
           WORLD
         
         Beispiel 2:
         
           02
           AT BE BG CH CY
         
3.2.12 Preisinformationen

Datenfeed libreka!
Die Preisangaben in den libreka! Datenfeeds sind entsprechend der ONIX-Regeln
(http://www.editeur.org/) angegeben und demnach auszulesen.

libreka! E-Book-Data               S. 14 von 34
E-Book Remote -Schnittstelle
technische Spezifikation
(Stand: Januar 2015)
Die Verkaufsart (Agency- oder Reseller-Modell)        eines   Titels   ist   bei   den
Preisinformationen im Tag  zu finden:

AgencyAgreement=Y  Titel wird nach dem Agency-Modell verkauft
AgencyAgreement=N  Titel wird nach dem Reseller-Modell verkauft

Hinweis:
Die in Deutschland gemeldeten deutschsprachigen Titel haben einen gebundenen
EUR[D]-Preis – erkennbar an dem Wert in 04.

Die in Deutschland gemeldeten nicht deutschsprachigen Titel haben keinen
gebundenen EUR[D]-Preis – erkennbar an dem Wert in 01 oder
02.

Datenfeed internationale Titel
In den Datenfeeds der internationalen Titel sind folgende Preisangaben im ONIX
hinterlegt:

    A) Festgesetzter Einkaufspreis des Händlers, für den Sie den Titel bei uns
       einkaufen:

           07
           02
           8.79
           EUR
           DE
           S
         
    B) Unverbindlicher Preis (AgencyAgreement=N), bei dem der
       Online-Shop den Endkundenpreis individuell festsetzten kann (wobei sich Ihr
       Einkaufspreis nicht ändert)

           02
           AgencyAgreement=N
           02
           10.99
           EUR
           DE
           S
         
libreka! E-Book-Data                S. 15 von 34
E-Book Remote -Schnittstelle
technische Spezifikation
(Stand: Januar 2015)
oder

         festgesetzter Verkaufspreis (AgencyAgreement=Y), der vom
         Online-Shop als Endkundenpreis übernommen werden muss

           42
           AgencyAgreement=Y
           02
           10.99
           EUR
           DE
           S
         
    3.2.12.1 Hinweise:
    Datumsangaben im Preisknoten

         Verlage senden vermehrt E-Book-Preisänderungen in Form von zukünftigen
         Preisen. Die Preise erkennt man anhand der Datumsangaben in  "gültig
         ab" und  "gültig bis". Beispiel für Preisknoten in ONIX 2.1:

         1. Aktueller Preis        2. Zukünftiger (Special   3. Zukünftiger Preis
                                       Offer) Preis
                                               
             04           04           04
             02           02           02
             9.90         5.90         9.90
             EUR          EUR          EUR
             DE           DE           DE
             S            S            S
             20140621     20140622     20140630
                               20140629 
                                   
         Bei der Verarbeitung der Datenfeeds müssen die Preisknoten auf diese
         Angaben geprüft werden und entsprechende Preisankündigungen/-
         veränderungen im Shop berücksichtigt werden.

libreka! E-Book-Data                 S. 16 von 34
E-Book Remote -Schnittstelle
technische Spezifikation
(Stand: Januar 2015)
Kostenlos / Kostenfrei

         Bei bestimmten Verlagsaktionen werden Titel auch kostenlos/kostenfrei
         angeboten. Diese Preismeldung kann über einen kompletten Preisknoten mit
         einem Wert von 0.00 übermittelt werden:

           04
           02
           0.00
           EUR
           DE
           S
         
         Es besteht auch die Möglichkeit, über das ONIX-Tag  mit Code 01 den
         Titel auf kostenfrei zu setzen:

             05
             5106488
           
           MVB
           00
           IP
           20
           01
         
         Es kommen dann keine Preisknoten im SupplyDetail vor.

    Beide Varianten sind in ONIX zulässig und valide.

3.3 E-Books in mehreren Formaten & Produktverknüpfungen

Sofern ein E-Book in mehreren Formaten verfügbar ist, kann der Verlag die
entsprechenden ISBNs miteinander verknüpfen. Diese Verknüpfung wird dann im
ONIX-Datensatz hinterlegt. Beispiel: Im Datensatz der ISBN 9783765729027 sind
Verknüpfungen unter  hinterlegt:

libreka! E-Book-Data                 S. 17 von 34
E-Book Remote -Schnittstelle
technische Spezifikation
(Stand: Januar 2015)
[…]

        06
        
               15
               9783765729041
        
        DG

        06
        
               15
               9783765730528
        
        DG

[…]

Ein verknüpftes E-Book erkennt man an der Produktform DG - die
ISBN des verknüpften E-Books ist im Tag  enthalten  .

Die Verknüpfungen können auch ISBNs zu anderen Produkten enthalten. Diese sind
durch eine andere Produktform in  gekennzeichnet.
Beispiel-Werte:
     BB  Hardcover
     BC Taschenbuch

3.4 Hinweis zur Warengruppensystematik

Jedes E-Book ist einer Warengruppe zugeordnet. Diese ist im ONIX-Tag
   hinterlegt. Die internationalen Titel sind ebenfalls einer
Warengruppe zugeordnet – das Mapping wurde von libreka! durchgeführt. Die
original BIC- bzw. BISAC-Klassifizierung wurde in den Feeds beibehalten, diese
Spezifikation geht aber nicht näher auf diese ein.

      26
      2.0
      [4-stellige Angabe]
      [Warengruppentext mit Index]

libreka! E-Book-Data               S. 18 von 34
E-Book Remote -Schnittstelle
technische Spezifikation
(Stand: Januar 2015)
Zum Auslesen dieses Tags sollte wie folgt vorgegangen werden:
Eine Warengruppe hat 4 numerische Stellen: 1-stelliger Warengruppen-Index für die
Editionsform, darauf folgt 3-stellig die Warengruppe für die inhaltliche Zuordnung.

Reihenfolge:
   1. Stelle: Index
      1 Hardcover, Softcover
      2 Taschenbuch
      3 Zeitschrift, Loseblatt-Ausgabe
      4 DVD, Video
      5 Audio-CD, Kassette
      6 CD-ROM, DVD-ROM
      7 Kalender
      8 Karten, Globen
      9 Nonbooks, PBS* (*kein Zwang zur Angabe einer WG)

    2. Stelle: Haupt-Warengruppe
       1 Belletristik
       2 Kinder- und Jugendbücher
       3 Reise
       4 Ratgeber
       5 Geisteswissenschaften, Kunst, Musik
       6 Naturwissenschaften, Medizin, Informatik, Technik
       7 Sozialwissenschaften, Recht, Wirtschaft
       8 Schule und Lernen
       9 Sachbuch

    3. + 4. Stelle: Warengruppe

Eine Übersicht der Warengruppe finden Sie auf der Homepage des VLB im Bereich
Verlage/Download-Center http://info.vlb.de/verlage/download-center.html
unter dem Punkt „Sonstige Informationen“:
Information: Warengruppen-Systematik (WGSneu) (ab 1.1.2007)
Tabellarische Übersicht: Neue Warengruppen (WGSneu) mit Index
Tabellarische Übersicht: Neue Warengruppen (WGSneu) ohne Index

Der Warengruppen-Index (Editionsform) kann beim Auslesen übersprungen werden.
Die Stellen 2 bis 4 geben die inhaltliche Zuordnung an.
Beispiel:

libreka! E-Book-Data                S. 19 von 34
E-Book Remote -Schnittstelle
technische Spezifikation
(Stand: Januar 2015)
26
        2.0
        6743
        CD-ROM,     DVD-ROM          /       Medien,   Kommunikation/Buchhandel,
Bibliothekswesen

Die textliche Beschreibung der Warengruppe ist im Tag   
enthalten (Warengruppen-Index, Haupt-Warengruppe und Warengruppe sind mit
einem „/“ getrennt). Bei der Auswertung dieses Tags kann der Warengruppen-Index
übersprungen werden. Für das Auslesen der textlichen Beschreibung können auch
die tabellarischen Übersichten verwendet werden.

Hinweis:
Die Bezeichnung „Warengruppen“ sowie deren Inhalt/Aufbau ist ein feststehender
Begriff aus dem Buchhandel. In anderen Sparten findet man solche Zuordnungen
auch unter dem Begriff „Kategorien“.

3.5 Hinweis zur thema-Klassifikation in ONIX 2.1
Während der Frankfurter Buchmesse 2012 wurden die Aktivitäten von thema zum
ersten Mal vorgestellt. Grundlage bildet die seit langem bewährte englische
Buchklassifikation BIC Standard Subject Categories. 15 nationale Gruppen arbeiten
in enger Abstimmung seit 2011 gemeinsam an entsprechenden lokalen
Anpassungen, Übersetzungen und Regelwerken.

Die neue Buchklassifikation besteht aus ca. 2500 „Subjects“ und ca. 2000
ergänzenden Begriffen (Qualifier). Die „Subjects“ dienen dazu, die Sachthemen des
Titels zu beschreiben. Die „Qualifier“ ermöglichen eine weitere Präzisierung des
Inhalts. Sie liefern geografische, sprachliche, zeitliche und weitere informative
Aspekte zum Buch.

3.5.1 Die thema-Klassifikation in ONIX 2.1
Das Auslesen der thema-Klassifikation aus den ONIX 2.1 Daten ist etwas komplexer
als das Auslesen der Warengruppen. Die thema-Klassifikation wird in einem
MainSubject-Composite und mehreren Subject-Composites gesendet. Da es
verschiedene Mappings auf die thema-Klassifikation gibt und diese qualitativ
unterschiedlich sind, kennzeichnen wir zusätzlich die thema-Klassifikation mit einer
Quelle (Sourcename).

libreka! E-Book-Data                S. 20 von 34
E-Book Remote -Schnittstelle
technische Spezifikation
(Stand: Januar 2015)
Sourcename Attribut:
Die thema-Klassifikation kann aus verschiedenen Quellen stammen. Die
Initialklassifizierung wurde durch ein Mapping Warengruppen  thema erzeugt. Da
die       thema-Klassifizierung     deutlich   umfangreicher   ist   als     die
Warengruppensystematik, soll diese Klassifizierung durch die Verlage noch
verfeinert oder ergänzt werden.

Auch sind weitere thema-Quellen möglich, die z.B. über ein Mapping aus anderen
Klassifizierungen (DDC, BIC, BISAC u.a.) in die VLB-Daten gelangen.
Unterschiedliche Quellen bedeuten auch unterschiedliche Datenqualität.

Um ein Ausfiltern bestimmter Quellen zu ermöglichen, werden die entsprechenden
MainSubject- und Subject-Starttags mit dem XML-Attribut „sourcename“ versehen.
Folgende Werte sind für dieses Attribut vereinbart worden:

         ONIX @sourcename           Hinweis                     Prio
         Publisher                  Vom Verlag                  1
         PublisherServiceProvider   Von Verlags-Dienstleister   2
         DBCarrier                  Vom VLB                     3
         BICMapping                 Aus BIC-Mapping             4
         BISACMapping               Aus BISAC-Mapping           5
         DDCMapping                 Aus DDC-Mapping             6
         WGSneuMapping              Aus WGSneu-Mapping          7
         WGS1Mapping                Aus WGS1-Mapping            8

Die Prioritäten geben die Güte der Klassifizierungsquelle an.

   3.5.1.1 thema im MainSubject Composite
Zukünftig müssen Sie zwei MainSubject Composites verarbeiten:
   1. MainSubject Composite für die weiterhin obligatorischen Warengruppen
   2. MainSubjectComposite für das erste thema-Inhalt (Subject)

Das erste thema-Inhalt (Subject) wird als MainSubject gesendet. Weitere thema-
Inhalte (Subjects) und thema-Zusätze (Qualifier) werden in den Subject Composites
gesendet. Beispiel MainSubject Short tag:

               93
               1.0
               FBA
               thema-Text
         
libreka! E-Book-Data                   S. 21 von 34
E-Book Remote -Schnittstelle
technische Spezifikation
(Stand: Januar 2015)
3.5.1.2 thema im Subject Composite
Das zweite thema-Inhalt (Subject) und alle weiteren thema-Zusätze (Qualifier)
werden in Subject Composites erfasst. Bitte achten Sie darauf, dass thema sieben
Subject Scheme Identifier hat. Einen Code für die thema-Inhalte (Subjects) und
sechs Codes für die verschiedenen thema-Zusätze (Qualifier).

Diese finden Sie in den ONIX-Code-Listen 26 und 27:

         Code       Name
         93         thema subject category
         94         thema geographical qualifier (Code beginnt mit 1)
         95         thema language qualifier (Code beginnt mit 2)
         96         thema time period qualifiern (Code beginnt mit 3)
         97         thema educational purpose qualifier (Code beginnt mit 4)
         98         thema interest age / special interest qualifier (Code beginnt mit 5)
         99         thema style qualifier (Code beginnt mit 6)

Beispiel Subject Short tag:
         
                93
                1.0
                FBB
                Text
         
                94
                1.0
                1DXR
                Text
         
Der Code  bzw.  ist optional im Composite.

3.5.2 thema-Version
Bitte achten Sie von Anfang an auf die thema-Version im Tag „Subject Scheme
Version“. Bisher handelt es sich um die Version 1.0 aber im Gegensatz zu den
Warengruppen wird in regelmäßigen Abständen (ein bis zwei Jahren) mit
angepassten thema-Versionen zu rechnen sein.

3.5.3 Weiterführende Informationen
Die folgenden Internet-Seiten bzw. Dokumente liefern Ihnen ausführliche
Informationen zur thema-Klassifikation.

libreka! E-Book-Data                         S. 22 von 34
E-Book Remote -Schnittstelle
technische Spezifikation
(Stand: Januar 2015)
   http://info.vlb.de/dienstleister/thema-klassifikation.html
   thema – die offizielle Webseite bei Editeur
   thema-Browser: Suche innerhalb der thema-Klassifikation (deutsch und andere
    Sprachen mit Hilfetexten)
   thema-Klassifikation mit deutscher Übersetzung (.xlsx) von Editeur

Grundlegende Bedienungsanleitung (pdf) der deutschen thema-Arbeitsgruppe

4. Einbindung der Schnittstelle
Die neue Schnittstelle basiert auf der REST-Technologie und ist in drei neue
Funktionen unterteilt. Die Antworten der einzelnen Funktionen werden im JSON-
Format zurückgeben.

4.1 Schnittstelle
Die Schnittstelle ist unter der URL mit folgendem Aufbau erreichbar:

https:///?shopid=&param=

4.1.1 Live-Schnittstelle
Die Live-Schnittstelle ist unter folgender Domain erreichbar:

ebookremote.libreka.de

4.1.2 Test-Schnittstelle
In der Entwicklungsphase sollte nur auf das Testsystem zugegriffen werden. Der
Datenbestand des Testsystems muss nicht dem Bestand des Live-Systems
entsprechen und kann sich ändern.

Die Test-Schnittstelle ist unter folgender Domain erreichbar:

ebookremote-test.libreka.de

4.2 Parameter und Verschlüsselung
Es werden stets die beiden Parameter shopid und param übergeben.
Die shopid wird Ihnen mitgeteilt.

libreka! E-Book-Data                 S. 23 von 34
E-Book Remote -Schnittstelle
technische Spezifikation
(Stand: Januar 2015)
Die für die Funktion benötigten Parameter, als Query-String zusammengesetzt,
werden verschlüsselt als URL-Parameter param übermittelt.

Der verwendete Verschlüsselungstyp ist 3DES mit Mode CBC. Der daraus
entstehende String wird anschließend mit base64-verschlüsselt und URL-enkodiert.

Für die Verschlüsselung wird der händlerspezifische Key, der für CBC notwendige
Initialisierungsvektor und das für DES verwendete Padding benötigt. Der Key wird für
jeden einzelnen Verkäufer definiert und nach Unterzeichnung des Nutzungsvertrages
mitgeteilt.

Hinweis:
Die ShopID muss zusätzlich bei dem Parameter „param“ übergeben und
verschlüsselt werden.

4.2.1 Initialisierungsvektor und Padding Live-Schnittstelle
        secretIV = cA914%+~
        secretKeyPadding = Uvd8569A@*/\\

4.2.2 Initialisierungsvektor und Padding Test-Schnittstelle
        secretIV = secret12
        secretKeyPadding = secretKeyPadding

4.3 Funktionen
Die Beispielaufrufe wurden mit folgenden Einstellungen verschlüsselt:
    secretIV = secret12
    secretKeyPadding = secretKeyPadding
    shopid = 5106488
    ISBN: 9783456789989

libreka! E-Book-Data                    S. 24 von 34
E-Book Remote -Schnittstelle
technische Spezifikation
(Stand: Januar 2015)
4.3.1 Funktion checkISBN

Mit der Funktion checkISBN soll vor dem Abschluss des Kaufs im Online-Shop an
der Schnittstelle angefragt werden, ob der Titel / die ISBN verfügbar ist.

 Funktion               checkISBN
 Pfad                   /rest-api/isbn/checkISBN
 HTTP-Method            GET
 Parameter              Name                        Typ         Werte                Default   Optional
                        shopid                      String                                     Nein
                        isbn                        String                                     Nein
                        countrycode                 String      ISO_3166-1                     Nein
                                                                2 Letter code;
                                                                Aufenthaltsort des
                                                                Kunden;
                        source                      String      libreka: für den               Nein
                                                                Datenfeed
                                                                librekaEbooks /
                                                                librekaEbooks2

                                                                gardners: für den
                                                                Datenfeed
                                                                librekaEbooksExt1

                                                                overdrive: für den
                                                                Datenfeed
                                                                librekaEbooksExt2
                        drmtype                     String      Code aus :               ja
                                                                02 => digitales
                                                                Wasserzeichen
                                                                [Social-DRM]
                                                                03 => Adobe DRM
                                                                [Hard-DRM]
                                                                00 => kein DRM
                        format                      String      Code aus :               ja
                                                                002 => PDF
                                                                029 => epub
 Prüfungen              A.     shopID gültig
                        B.     ISBN13 gültig
                        C.     ISBN13 für Shop verfügbar
                        D.     ISBN13 im Bestand verfügbar
                        E.     Country-Code gültig
                        F.     Country-Code für ISBN als Salesright verfügbar
                        G.     OnSaleDate erreicht
                        H.     Titel an Source verfügbar

                        Bei Angabe der optional Parameter:
                        I. DRM-type für ISBN korrekt
                        J. Format für ISBN korrekt
 OK Antwort             Schlüssel                Typ      Werte

libreka! E-Book-Data                             S. 25 von 34
E-Book Remote -Schnittstelle
technische Spezifikation
(Stand: Januar 2015)
errorList        List        MessageObjects
                        isbn             String
                        amount           Float
                        drmType          String      Code aus :
                                                     02 => digitales Wasserzeichen [Social-DRM]
                                                     03 => Adobe DRM [Hard-DRM]
                                                     00 => kein DRM
                        Format           String      Code aus :
                                                     002 => PDF
                                                     029 => epub
                        countryCode      String
                        onSaleDate       String
                        priceType        String
                        Source           String      libreka: für den Datenfeed librekaEbooks /
                                                     librekaEbooks2

                                                     gardners: für den Datenfeed librekaEbooksExt1

                                                     overdrive: für den Datenfeed librekaEbooksExt2

Beispiel:

 Encrypted URL:
 https://ebookremote-test.libreka.de/rest-
 api/isbn/checkISBN?shopid=5106488&param=L6Efre13Htotqm%2FDU7BySNZYaxCNcNJb%2FNp2
 VQ%2BQz%2BfeLKs7GaR5N101U69%2FSjrzfDJMZd9Bs26zYiyf%2FB9TSA%3D%3D

 Decrypted URL Parameters:
 shopid=5106488&isbn=9783456789989&countrycode=DE&source=libreka

 HTTP Request:

 HTTP Method = GET
 Request URI = /isbn/checkISBN
 Parameters = {shopid=[5106488],
 param=[L6Efre13Htotqm%2FDU7BySNZYaxCNcNJb%2FNp2VQ%2BQz%2BfeLKs7GaR5N101U69
 %2FSjrzfDJMZd9Bs26zYiyf%2FB9TSA%3D%3D]}
 Headers = {Accept=[application/json]}

 HTTP Response:
 Status: success

 Body:
 {
   "errorList": [
    {
      "messageCodes": "OK",
      "errorCode": "0",
libreka! E-Book-Data                  S. 26 von 34
E-Book Remote -Schnittstelle
technische Spezifikation
(Stand: Januar 2015)
"messageDe": "OK",
       "messageEn": "OK",
       "valueObject": null
       }
     ],
     "isbn": "9783456789989",
     "amount": "5.45",
     "drmType": "02",
     "format": "029",
     "countryCode": "DE",
     "onSaleDate": "20140722",
     "priceType": "04",
     "source": "libreka"
 }

4.3.2 Funktion placeEbookOrder

Mit der Funktion placeEbookOrder wird nach der Überprüfung der ISBN der
Download an der Schnittstelle angefragt. Diese Funktion muss nach dem Abschluss
des Kaufprozesses im Online-Shop aufgerufen werden. Der Aufruf der Funktion
erzeugt eine gültige Transaktion für die Abrechnung.

Der Shop erhält als Antwort eine "Download-ID", die beim Aufruf der Funktion 3
übergeben werden muss.

 Funktion           placeEbookOrder
 Pfad               /rest-api/order/placeEbookOrder
 HTTP-              GET
 Method
 Parameter          Name                     Typ       Werte                         Default   Optional
                    shopid                   String                                            Nein
                    isbn                     String                                            Nein
                    external_transactionid                                                     Nein
                    countrycode              String    ISO_3166-1 2 Letter                     Nein
                                                       code; Aufenthaltsort des
                                                       Kunden;
                    source                   String    libreka: für den Datenfeed              Nein
                                                       librekaEbooks /
                                                       librekaEbooks2

                                                       gardners: für den Datenfeed
                                                       librekaEbooksExt1

                                                       overdrive: für den
                                                       Datenfeed
                                                       librekaEbooksExt2

libreka! E-Book-Data                          S. 27 von 34
E-Book Remote -Schnittstelle
technische Spezifikation
(Stand: Januar 2015)
drmtype                    String     Code aus :                         ja
                                                          02 => digitales
                                                          Wasserzeichen [Social-
                                                          DRM]
                                                          03 => Adobe DRM [Hard-
                                                          DRM]
                                                          00 => kein DRM
                    format                     String     Code aus :                         ja
                                                          002 => PDF
                                                          029 => epub
                    Preisangabe
                    Die Übermittlung des Preises ist für einen Verkauf mit einer Angabe
                    countrycode=DE optional.
                    Wird beim Parameter countrycode ein anderes Länderkürzel übergeben, müssen
                    auch der Verkaufspreis (amount), die Mwst. (vat) und die Währung (currencycode)
                    für das angegebene Land übergeben werden.
                    amount                  Float    9.99                        Preis
                    vat                     Float    0.19                        0.19
                    currencycode            String   ISO 4217 currency codes     EUR
                    Kundendaten
                    Die Übermittlung von Endkundendaten ist mit Abschluss des Vertrags
                    abgesprochen und an der Schnittstelle eingestellt worden. Bitte achten Sie bei der
                    Einbindung der neuen Schnittstelle auf die Übergabe der Parameter.
                    firstname               String   Max                                    ja
                    surname                 String   Mustermann                             ja
                    emailc                  String   Max.mustermann@email.de                ja
                    company                 String   Mustermann  AG                         ja
 Prüfungen          A.   shopID gültig
                    B.   ISBN13 gültig
                    C.   ISBN13 für Shop verfügbar
                    D.   ISBN13 im Bestand verfügbar
                    E.   Country-code gültig
                    F.   Country-code für ISBN als Salesright verfügbar
                    G.   OnSaleDate erreicht
                    H.   Titel an Source verfügbar

                    Bei Angabe der optionalen Parameter:
                    I. DRM type für ISBN korrekt
                    J. Format für ISBN korrekt
                    K. Titel an Source verfügbar
                    L. Preisangaben prüfen
 OK Antwort         Schlüssel                       Typ         Werte
                    errorList                       List        MessageObjects
                    isbn                            String
                    amount                          Float       (default EUR[D] – Parameterwert bei Angabe
                                                                durch Shop)
                    vat                             Float
                    currencycode                    String
                    external_transactionid          String

libreka! E-Book-Data                             S. 28 von 34
E-Book Remote -Schnittstelle
technische Spezifikation
(Stand: Januar 2015)
downloadID         String

Beispiel:

 Encrypted URL:
 https://ebookremote-test.libreka.de/rest-
 api/order/placeEbookOrder?shopid=5106488&param=Rjb%2Bvrld7%2BQNeGwo5LUiTp1otYq0kWz
 a7vkS0%2F8BbvT2pn1JEGg3FvVMEiY3drE4%2Fc5Krt2s6RvjV69iyj4fpKdgwiaFN8TsbRI%2Fuffbi1
 %2FXcg47E9lNuOQvF1pHRGC8NIf%2FlaLteg6538RdtBM%2B24ndW9Dn9A1%2BqOOdoJwaVZgg
 Rxt%2F2ug2tTky9EkJuep7UtAzKs5Kaww0Tv5e9YcMVYGQ2yaO%2BOnk

 Decrypted URL Parameters:

 shopid=5106488&isbn=9783456789989&external_transactionid=demo&
 format=029&source=libreka&firstname=Max&drmtype=02&emailc=max.mustermann&surname=Must
 ermann&countrycode=DE

 HTTP Request:

 HTTP Method = GET
 Request URI = /order/placeEbookOrder
 Parameters = {shopid=[5106488], param=[
 Rjb+vrld7+QNeGwo5LUiTp1otYq0kWza7vkS0/8BbvT2pn1JEGg3FvVMEiY3drE4/c5Krt2s6RvjV69iyj
 4fpKdgwiaFN8TsbRI/uffbi1/Xcg47E9lNuOQvF1pHRGC8NIf/laLteg6538RdtBM+24ndW9Dn9A1+qOO
 doJwaVZggRxt/2ug2tTky9EkJuep7UtAzKs5Kaww0Tv5e9YcMVYGQ2yaO+Onk]}
 Headers = {Accept=[application/json]}

 HTTP Response:
 Status: success

 Body:

 {
     "errorList": [
       {
         "messageCodes": "OK",
         "errorCode": "0",
         "messageDe": "OK",
         "messageEn": "OK",
         "valueObject": null
       }
     ],
     "isbn": "9783456789989",
     "country_code": "DE",
     "amount": 5.45,
     "vat": 0.19,
     "currencyCode": "EUR",
libreka! E-Book-Data                S. 29 von 34
E-Book Remote -Schnittstelle
technische Spezifikation
(Stand: Januar 2015)
"externalTransactionId": "demo",
     "downloadId": 566
 }

4.3.3 Funktion getEbookDownload

Die Funktion getEbookDownload liefert bei erfolgreicher Erstellung des Kunden-E-
Books anhand der übergebenen Download-ID eine Download-URL zurück. Diese
URL kann dann im Kundenkonto/Downloadbereich für den Endkunden hinterlegt
werden.

 Funktion               getEbookDownload
 Pfad                   /rest-api/download/getEbookDownload
 HTTP-Method            GET
 Parameter              Name                     Typ      Werte               Default   Optional
                        shopid                   String                                 Nein
                        external_transactionid   String
                        isbn                     String                                 Nein
                        downloadid               String
 Prüfungen              A. shopID gültig
                        B. ISBN13 gültig
                        C. External_transactionID für ISBN13 gültig
                        D. downloadID für External_transactionID & ISBN13 gültig
                        E. MC-Ebook aufbereitet
                        F. Remote-Ebook bereit
 OK Antwort             Schlüssel                Typ      Werte
                        errorList                List     MessageObjects
                        isbn                     String
                        external_transactionid   String
                        downloadID               String
                        Download-URL             String

Beispiel:

 Encrypted URL:

 https://ebookremote-test.libreka.de/rest-
 api/download/getEbookDownload?shopid=5106488&param=Rjb%2Bvrld7%2BQNeGwo5LUiTp1otYq
 0kWza7vkS0%2F8BbvT2pn1JEGg3FvVMEiY3drE4%2Fc5Krt2s6RtkvY83z4SaIrUPPRB%2BeuugDF
 6%2BwyvvU40%3D

 Decrypted URL Parameters:

libreka! E-Book-Data                         S. 30 von 34
E-Book Remote -Schnittstelle
technische Spezifikation
(Stand: Januar 2015)
shopid=5106488&isbn=9783456789989&external_transactionid=demo&downloadid=566

 HTTP Request:

 HTTP Method = GET
 Request URI = /download/getEbookDownload
 Parameters = {shopid=[5106488],
 param=[Rjb+vrld7+QNeGwo5LUiTp1otYq0kWza7vkS0/8BbvT2pn1JEGg3FvVMEiY3drE4/c5Krt2s6R
 tkvY83z4SaIrUPPRB+euugDF6+wyvvU40=]}
 Headers = {Accept=[application/json]}

 HTTP Response:
 Status: success

 Body:
 {
   "errorList": [
     {
       "messageCodes": "OK",
       "errorCode": "0",
       "messageDe": "OK",
       "messageEn": "OK",
       "valueObject": null
     }
   ],
   "isbn": "9783456789989",
   "externalTransactionId": "demo",
   "downloadId": 566,
   "downloadURL": "https://ebookremote-test.libreka.de/rest-
 api/download/getDownload?shopid=5106488&param=Rjb%2Bvrld7%2BSRjBfVK%2B7UEGTt5GlF%
 2F9KWwlWdtb2Wm1zxO1gyktuW%2F05xDhmwBjGqQNdHHGmSZjnzonBezplb5xNkIzRN3Sft9cO6
 s%2BuP5is%3D”
 }

4.3.4 Funktion getDownload

Die Funktion getDownload liefert direkt die pdf/epub/acsm-Datei aus, die für den
Endkunden aufbereitet wurde.

 Funktion               getDownload
 Pfad                   /rest-api/download/getDownload
 HTTP-Method            GET
 Parameter              Name                     Typ         Werte   Default   Optional
                        shopid                   String                        nein
                        downloadid               String                        nein
 Prüfungen
libreka! E-Book-Data                          S. 31 von 34
E-Book Remote -Schnittstelle
technische Spezifikation
(Stand: Januar 2015)
OK Antwort             E-Book (*.pdf / *.epub / *.acsm )

Beispiel:

 Encrypted URL:

 https://ebookremote-test.libreka.de/rest-
 api/download/getDownload?shopid=5106488&param=Rjb%2Bvrld7%2BQ2HrJg%2Fz5rzxRdGymG4
 TXaCbC2SHvI0Hw%3D

 Decrypted URL Parameters:

 shopid=5106488&downloadid=566

 HTTP Request:
 HTTP Method = GET
 Request URI = /download/getDownload
 Parameters = {shopid=[5106488], param=[Rjb+vrld7+Q2HrJg/z5rzxRdGymG4TXaCbC2SHvI0Hw=]}
 Headers = {}

 HTTP Response:

 Status = 200
 Headers = {Content-Type=[application/epub], Content-Disposition=[attachment;
 filename=demo_464.epub], Content-Length=[256]}
 Content type = application/epub+zip
 Body = binary file content

4.4 Fehlermeldungen
Die folgenden               Fehlermeldungen        werden         vom         System        als     JSON-Antwort
zurückgegeben:

Prüfungen                      ErrorCode   ErrorMessage Text EN                ErrorMessage Text DE
[]                                 0       OK                                  OK
shopID gültig                      1       Invalid ShopID                      ungültige ShopID
ISBN13 gültig                      2       ISBN13 not correct                  ISBN nicht korrekt
ISBN13 für Shop verfügbar          3       ISBN13 is not available for sale    Die ISBN13 ist nicht für Ihren Shop
                                                                               verfügbar.
ISBN13 im Bestand                  4       ISBN13 not available                ISBN nicht im Bestand verfügbar
verfügbar
Country-code für ISBN13            5       No Salesright for [country_code]    Kein Verkaufsrecht für [country_code]
als Salesright verfügbar
- Das System muss den
angegebenen Ländercode
mit den möglichen ONIX-
Codes abgleichen (Angabe
libreka! E-Book-Data                            S. 32 von 34
E-Book Remote -Schnittstelle
technische Spezifikation
(Stand: Januar 2015)
Land direkt / Angabe
Territorium / World etc.)
Country-Code gültig            6    Invalid Country-Code.               Der angegebene Ländercode ist nicht
                                                                        korrekt.
DRM-type für ISBN13            7    DRM-type [DRM_type] not             DRM-type [DRM_type] nicht korrekt
korrekt                             correct
Format für ISBN13 korrekt      8    Format [format] not correct         Format [format] nicht korrekt
OnSaleDate erreicht            9    OnSaleDate [OnSaleDate] not         OnSaleDate [OnSaleDate] noch nicht
                                    yet reached. Title must not be      erreicht – Titel darf noch nicht verkauft
                                    sold.                               werden.
Titel an Source verfügbar      10   Title not available at              Titel ist bei Provider=[source] nicht
                                    Source=[source]                     verfügbar
Ausleih-Zeitraum möglich       11   Lending duration                    Ausleih-Zeitraum [lending_duration] nicht
                                    [lending_duration] not correct      korrekt
External_transactionID für     12   Value of                            Die Externe TransaktionsID
ISBN gültig                         external_transactionID=[externa     [external_transactionID] ist für die ISBN
                                    l_transactionID] not valid for      [ISBN] nicht gültig.
                                    ISBN [ISBN]
downloadID für                 13   Value of downloadID                 Die DownloadID [downloadID] ist für die
External_transactionID &            =[donwloadID] not valid for         externe_transactionsID
ISBN gültig                         external_transactionID              [external_transactionID] und ISBN
                                    [external_transactionID] not        [ISBN]nicht gültig.
                                    valid for ISBN [ISBN]
MC-Ebook aufbereitet           14   Ebook [ISBN] is not available for   Das Ebook [ISBN] wurde noch nicht zum
                                    download at the moment.             Download bereitgestellt – bitte warten
                                                                        Sie noch einen Moment.
Remote-Ebook bereit            15   Ebook [ISBN] from [Source] is       Das Ebook [ISBN] von [source] wurde
                                    not available for download the      noch nicht zum Download bereitgestellt –
                                    moment.                             bitte warten Sie noch einen Moment.
Watermarking ok                16   Ebook [ISBN] has problems with      Das Ebook [ISBN] kann nicht mit einem
                                    watermarking. Contact Support.      Wasserzeichen geschützt werden. Bitte
                                                                        kontaktieren Sie den Support.
ADE ok                         17   Ebook [ISBN] has problems with      Das Ebook [ISBN] kann nicht mit ADE
                                    ADE. Contact Support.               geschützt werden. Bitte kontaktieren Sie
                                                                        den Support.
                                                                        [ADE_Error]
Provider Fehler                18   Ebook [ISBN] from [Source] has      Das Ebook [ISBN] von [source] konnte
                                    not been deliverd vom [Source]:     nicht bereit gestellt werden:
                                    [Error_code_Source]                 [Error_code_Source]
Download Zeitraum              19   The download timeframe is over      Für das Ebook [ISBN] wurde der
überschritten                       for ebook [ISBN].                   zulässigen Downloadzeitraum
                                                                        überschritten.
Download Anzahl                20   Number of downloads for ebook       Anzahl der Downloads für Ebook [ISBN] /
überschritten                       [ISBN] / downloadId                 downloadId [downloadID] überschritten.
                                    [downloadID] exceeded
Transaktion Storniert          21   Transaction is cancelled.           Die Transaktion ist storniert. Es steht
                                    Download not available.             kein Download mehr zur Verfügung.
Wenn eine Preisangabe          23   Please check if all parameter for   Die Angabe der Preisparameter ist nicht
gemacht wird, dann                  price declaration are given:        vollständig. Bitte stellen Sie sicher, dass
müssen alle Parameter               amount, vat, currency_code,         die Parameter amount, vat,
{amount                             currency_country.                   currency_code, currency_country
vat, currency_code,                                                     übergeben werden.
currency_country
} für die Angabe eines
Preises übergeben werden
Prüfung Währung und            24   You have not given a valid          Sie haben keine gültige
Ländercode:                         currency_code /                     Währungsangabe übergeben.
Beispiel                            currency_country
Currency_code: EUR
Curreny_country: DE
oder
Currency_code: EUR
Curreny_country: AT
Pflichtparameter fehlt         25   Value for [parameter] is missing.   Angabe von [Parameter] fehlt.

libreka! E-Book-Data                     S. 33 von 34
E-Book Remote -Schnittstelle
technische Spezifikation
(Stand: Januar 2015)
Ungültiges Float Format        26      "Please insert value with \".\"."   Bitte Angabe bei %s mit "." angeben.
Ländercode nicht DE –          27      For countrycode [countrycode] it    Bei Angabe des Ländercodes
Prüfung der Preis-und                  is mandatory to set the             [countrycode] müssen die Parameter
Währungsparameter                      parameter price, vat,               price, vat, currencycode und
                                       currencycode and                    currencycountry übergeben werden.
                                       currencycountry.
Ungültige Anfrage              400     The request is not valid            Ungültige Anfrage.
Entschlüsselung nicht          401     The request parameter param         Der Anfrage Parameter param konnte
möglich                                could not be decrypted              nicht entschlüsselt werden.

Die Fehlermeldung muss vom Shop-System interpretiert und in einer für den
Endkunden sprechenden Fehlermeldung ausgegeben werden.

Beispiel für die Ausgabe eines Fehlers:

       HTTP Response:

       Status = 200
       Headers = {Content-Type=[application/json]}
       Body =
       {"errorList":[{"messageCodes":"ISBN_NA_FOR_SHOP","errorCode":"3","messageDe":"Die
       ISBN13 ist nicht für Ihren Shop verfügbar.","messageEn":"ISBN13 is not available for
       sale.","valueObject":["9780730309260"]}],"isbn":"9780730309260","priceDE":null,"drmType":"har
       d","format":"pdf","countryCode":"DE","onSaleDate":null,"priceType":null,"source":"libreka"}

5. Kontakt
libreka! Support
Telefon: +49 (0)69 1306-558
Fax: +49 (0)69 1306-395
E-Mail: support@libreka.de
libreka! E-Book-Data                        S. 34 von 34
E-Book Remote -Schnittstelle
technische Spezifikation
(Stand: Januar 2015)
Sie können auch lesen