Všeobecné informácie

Všeobecné informácie o rozhraní.

Sledovanie zmien v databáze

V databáze Optivus sú údaje ukladané v databáze MS SQL server. Na tabuľkách, ktoré sa budú využívať pri komunikácii s e-shopom sa nachádza stĺpec version typu rowversion. Ten je automaticky pri každej zmene záznamu aktualizovaný. Pomocou tohto stĺpca je možné sledovať zmeny. Ak si bude e-shop pamätať, že posledné načítané údaje majú hodnotu version X, dostane z rozhrania len nové alebo zmenené údaje tak, že do rozhrania pošle parameter version. Algoritmu na spracovanie údajov by mal postupovať nasledovne.

  • Požiada o dodanie údajov pomocou parametra version.
  • Prečíta si dodaný riadok odpovede a zistí si hodnotu parametra id.
  • Prehľadá si vlastnú databázu a ak v nej má záznam zodpovedajúci id, ten záznam si aktualizuje na nové hodnoty.
  • Ak taký záznam nenájde, vytvorí si nový záznam.
  • Po skončení si poznačí najvyššie známe version zo záznamov.

Testovanie API

Verejne prístupné testovacie API je na adrese https://eshop-beta-dot-optivusupdater.appspot.com/. Treba si nastaviť cestu podľa API, čiže napríklad získanie verzie API je na adrese /interface/eshop/version. Je to pripojené do testovacej vývojárskej databázy, v ktorej je zopár testovacích údajov. Na tom si to môžete odladiť. Ak potrebujete ladiť verzovanie a potrebujete, aby sa nejaký údaj zmenil, treba mi to napísať a ja urobím potrebný zásah.

Niekoľko endpointov:

Údaje v skladových kartách sa občas menia, pretože túto databázu používame na testovanie a tak sa tam občas objavia nové skladové karty.

Väčšina endpointov API je chránená a vyžaduje autorizáciu.

Pripojenie k viacerým databázam

Jedno API je schopné obsluhovať viac pripojených databáz. Možno to využiť napríklad na testovanie a ostrú prevádzku. K API sa potom pristupuje nasledovne. Ostrá databáza je napríklad označená ako live a ladiaca ako test. Cesta k API stromu skladových kariet budú potom vyzerať ako.

  • /interface/live/eshop/v1/strom
  • /interface/test/eshop/v1/strom

Ochrana prístupu

Používa sa Bearer token. Pre každý e-shop, ktorý pristupuje k API je vygenerovaný osobitný token. Ten si treba vyžiadať, pokiaľ chcete testovať napríklad voči nášmu vývojárskemu serveru.

Požiadavka:

GET /interface/eshop/v1/databazy HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
Authorization: Bearer <<sem to daj>>
Connection: keep-alive
Host: localhost:3001
User-Agent: HTTPie/0.9.9

Odpoveď:

HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 18
Content-Type: application/json; charset=utf-8
Date: Fri, 29 Jun 2018 10:31:45 GMT
ETag: W/"12-wtEMEtTEKz+725HgPHGgR4hEFbU"
X-Powered-By: Express

{
    "items": [
        "test"
    ]
}