Definícia API pre externý systém
Autorizácia
Z dôvodu bezpečnosti je potrebné implementovať autorizáciu API, ktorú môžete vykonať následujúcimi spôsobmi:
API key
V aplikácii bude možnosť zadať statický klúč, ktorý sa pošle ako parameter v url adrese, alebo sa pridá do hlavičky HTTP požiadavky.
Názov parametra bude možné zadať v aplikácii.
Príklad v url adrese:
``https://www.example.sk/shipping-order?{nazov_parametra}={api-key}``
Príklad v hlavičke:
``headers: { "{nazov_parametra}": "{api-key}" }``
Bearer token
V aplikácii bude možnosť zadať statický token, ktorý sa odošle v hlavičke požiadavky pod klúčom Authorization.
Musí to byť kľúč s dlhou životnosťou.
Príklad:
``headers: { "Authorization": "Bearer {token}" }``
Basic auth
V aplikácií bude možnosť zadať statické meno a heslo.
Údaje sa môžu odoslať 2 spôsobmi:
V hlavičke request pod kľúčom ``Authorization`` vo formáte ``meno:heslo`` a zakódované
Pomocou ``x-www-form-urlencoded`` pod názvami parametrov, ktoré sa definujú v aplikácii
Očakávené API na strane externého systému
Je potrebné, aby mal systém zabudované verejné rozhranie pre vrátenie objednávok prepravy podľa našej schémy, na základe dátumu a vrátenie objednávky prepravy na základe ľubovoľného identifikátora.
Očakávaný dátumový formát 'yyyy-MM-ddTHH🇲🇲ss'
Očakávaný formát čísiel #.####
Očakávaný formát objednávky prepravy:
Všeobecné nastavenia
Všeobecné nastavenia budú obsahovať tieto parametre:
Url adresu externého systému
Typ autorizácie
Potrebné parametre pre autorizovanie požiadavky
Implementácia funkcii
Aby ste mohli plne využívať hromadnú expedíciu, kontrolu výdaja alebo automatickú zmenu stavu objednávok vo Vašom e-shope, je potrebné, aby ste implementovali následovné funkcie:
- Vrátenie objednávok prepravy na základe dátumového rozsahu
Funckia pre vrátenie objednávok prepravy na základe dátumového rozsahu može byť na ľubovoľnej adrese. Adresa sa zadá v aplikácii.
Príklad:
/api/shipping-orders
Adresa by mala očakávať parametre:
1. Minimálny dátum, názov parametra date_from
2. Maximálny dátum, názov parametra date_to
Môže očakávať ľubovoľné parametre, ktoré bude možné zadať v aplikácii.
Príklad:
&stav_objednávky=nova
POZOR: Funkcia musí vrátiť zoznam objednávok preprav vo formáte
application/json
- Vrátenie objednávky prepravy na základe identifikátora
Funkcia pre vrátenie objednávky prepravy na základe identifikátorov može byť na ľubovoľnej adrese, ale musí obsahovať dynamický parameter.
Príklad:
/api/shipping-orders/{0}
Adresa môže očakávať ľubovoľné parametre, ktoré bude možné zadať v aplikácii
Príklad:
&stav_objednávky=nova
POZOR:
Funkcia musí vrátiť objednávku prepravy vo formáte
application/json
V prípade, že záznam nebol nájdený, vráti odpoveď s kódom
404 not found
- Zmena stavu objednávky a zapísanie čísla prepravy
Funkcia pre zmenu stavu objednávky a zapísanie čísla prepravy môže byť na ľubovoľnej adrese.
Musí obsahovať dynamický parameter.
Príklad:
/api/orders/{0})
Odosielať sa bude požiadavka typu PUT, ktorá bude obsahovať dáta v tele požiadavky.
Funkcia neočakáva v odpovedi žiadne dáta. Je možné vrátiť odpoveď s kódom
204 no content
Očakávaný formát:
{ "courier": string | null, // Identifikátor kuriéra v externom systéme, ak sa nezmenil parameter ostane null "shippingNumber": string | null, // Číslo zásielky pridelené kuriérom "targetState": string | null, // Identifikátor stavu v externom systéme v prípade záujmu o zmenu stavu "packageCount": number, "additionalShippingNumbers": string[] // Dodatočné čísla balíkov bez hlavného čísla balíka, ak ich cieľový kuriér generuje pre každý balík zvlášť }
- Získanie objednávok podľa stavu objednávky
Funkcia pre vrátenie objednávok podľa zvolených stavov. Adresa sa zadá v aplikácii.
Príklad:
/api/shipping-orders/orders-by-states
Adresa by mala očakávať parametre:
Zoznam stavov (string []), názov parametra states
POZOR: Funkcia musí vrátiť zoznam objednávok prepráv vo formáte
application/json
- Získanie stavov z externého systému
Funkcia pre získanie stavov objednávok z externého systému. Adresa sa zadá v aplikácii.
Príklad:
/api/shipping-orders/available-states
Adresa neočakáva žiadne dodatočné parametre.
Očakávaný formát:
[ { "value": string, // Identifikátor stavu "name": string // Názov (bude zobrazovať v aplikácií) } ]