⚠

Váš prohlížeč není podporován

Používáte Internet Explorer, který Microsoft přestal podporovat v červnu 2022. Tento web vyžaduje moderní prohlížeč. Stáhněte si prosím jeden z těchto:

Microsoft Edge Google Chrome Mozilla Firefox

Přesto zobrazit web (může se zobrazit nesprávně)

Jaká data si musí z ReČeK API nakladatel ukládat, aby mohl aktualizovat záznam?

Otázka zněla takto:

Jaká data si musí z ReČeK nakladatel ukládat, aby mohl aktualizovat (tj. editovat, přenastavovat) přes API:

  • údaje o titulu,
  • údaje o produktu?

Stačí jako klíč pro obojí ISBN? Nebo je nutné ukládat také:

  • a) ReČeK ID titulu,
  • b) ReČeK ID produktu?

Odpověď:

Stačí ISBN, nebo je potřeba i ReČeK ID? Ani jedno. Systém nakladatele aktualizuje titul i produkt podle svých vlastních identifikátorů (ownerId), které posílá už při založení.

Titul

Klíčem je ownerId titulu v rámci nakladatele, kterého ReČeK určí podle přihlašovacího tokenu.

Produkt

Klíčem je titleOwnerId (vlastní identifikátor titulu, ke kterému produkt patří) spolu s ownerId produktu. Titul musí být do ReČeK zaslaný dřív, jinak API vrátí chybu 404.

Jak API funguje:

  • Role pro externí systémy nakladatelů (ExternalPublisher) umí jen zapisovat: POST /titles/receive a /products/receive.
  • Obě volání záznam založí, nebo ho aktualizují, pokud se stejným klíčem už existuje.
  • Tato role nemůže tituly ani produkty číst ani vyhledávat (mod-br-users Permissions.java:142-147).

Proč ISBN klíčem být nemůže:

  • Zpráva o produktu pole pro ISBN vůbec nemá.
  • ISBN přiděluje agentura až po založení produktu.
  • Produkt nemusí mít ISBN žádné, nebo jich může mít víc (některé koedice).

ReČeK ID: pro aktualizaci přes receive není potřeba. API ho vrací v odpovědi a uložit si ho doporučujeme pro dohledání záznamu. Povinné je jen pro editaci přes PUT /titles/{id} a /products/{id}. Ta je ale určená pro uživatele v roli Nakladatel, ne pro roli ExternalPublisher, a vyžaduje aktuální version a kompletní záznam.

Pravidla pro dodavatele
  • OwnerId se nesmí měnit, jelikož nová hodnota založí duplicitní záznam místo aktualizace.
  • Když produkt pošle pod jiným titleOwnerId, vznikne nový produkt, původní se nepřesune.
  • Posílat vždy úplná data, protože každá zpráva údaje záznamu přepíše.

Stav: Odpověď je jako interní komentář na issue, v resultSummary a připravený je i návrh changelogu. Položka čeká ve stavu awaiting-approval, stav issue jsem neměnil. Uzavřeš ji tlačítkem Done.

Shrnutí
  • Titul se při opakovaném zaslání aktualizuje podle vlastního identifikátoru titulu v systému dodavatele (ownerId).
  • Produkt se aktualizuje podle identifikátoru titulu (titleOwnerId) a vlastního identifikátoru produktu (ownerId).
  • ISBN klíčem být nemůže – přiděluje ho agentura až později, produkt jej nemusí mít nebo jich může mít víc.
  • ReČeK ID, které API vrací v odpovědi, není pro aktualizaci nutné; doporučujeme ho uložit pro dohledání záznamu.
  • Vlastní identifikátory se nesmí měnit – nová hodnota založí nový záznam.