WEXBO API

ÚVOD#

Táto dokumentácia poskytuje informácie o API rozhraní pre vývojárov, prostredníctvom ktorého je možné získať prístup do jednotlivých účtov (profilov) vedených v systéme WEXBO a spravovať tak niektoré sekcie a položky (získavať, pridávať, upravovať alebo mazať) v reálnom čase. Prepojiť je tak možné účtovný systém, ERP či CRM systém, prepravnú spoločnosť, analytické a marketingové nástroje, atď. Naše rozhranie API funguje ako webová služba REST, ktorá je založená na jednoduchej komunikácii s protokolom HTTP, pričom na výmenu dát využíva dátový formát JSON. Dokumentácia popisuje aktuálnu verziu označovanú ako v1.

Podrobné informácie o systéme WEXBO nájdete na stránkach wexbo.com.

Autorizácia#

Každé volanie požiadavky na REST API musí byť autorizované. Vo všetkých volaniach tak musí byť prítomná HTTP hlavička Authorization obsahujúca API token, ktorý reprezentuje prístup ku konkrétnemu účtu.

Authorization: Bearer {API_TOKEN}požiadavkahttp

API token získate po prihlásení sa do administrácie vášho účtu napríklad cez https://admin.wexbo.com v sekcii DOPLNKY / PLUGINY v plugine s názvom API.

Návratový stavový kód HTTP pre volanie, pri ktorých nebol používateľ prihlásený, je 401 Unauthorized.

Požiadavka#

HTTP metódy#

Podporované sú bežné metódy protokolu HTTP, ktoré sa zvyčajne používajú medzi webovými službami REST. Každá metóda protokolu HTTP má inú funkciu, pričom spôsob výkladu je popísaný v nasledujúcom zozname:

KódPopis
GETNačítanie jedného alebo viacerých záznamov. Požiadavka neobsahuje žiadne telo, teda sa využívajú len URL parametre.
POSTVytvorenie nového záznamu. Požiadavka musí obsahovať telo vo formáte JSON, teda údaje záznamu, ktoré chcete pridať.
PUTÚprava či aktulizácia existujúceho záznamu. Požiadavka musí obsahovať identifikátor záznamu a telo vo formáte JSON, teda údaje záznamu, ktoré chcete upraviť.
DELETEZmazanie existujúceho záznamu. Požiadavka musí obsahovať identifikátor záznamu, a zároveň neobsahuje žiadne telo.

V prípade potreby, pre zmenu HTTP metódy je možné použiť aj HTTP hlavičku X-HTTP-Method-Override. Pôvodná požiadavka tak môže mať napríklad HTTP metódu GET, pričom ak bude v tejto hlavičke požiadavky použitá hodnota DELETE, požiadavka bude spracovaná práve ako HTTP metóda DELETE.

HTTP hlavičky#

Požiadavka na volanie musí obsahovať HTTP hlavičku autorizácie s tokenom a HTTP hlavičku s verziou API. Aktuálna verzia API je v1.

Authorization: Bearer {API_TOKEN}
Content-Type: application/vnd.wexbo.v1požiadavkahttp

NázovHodnotaPopis
AuthorizationBearer {API_TOKEN}Autorizácia bude vykonaná na základe Bearer tokenu. Hlavička je popísaná vyššie v dokumentácii.
Content-Typeapplication/vnd.wexbo.v1Určuje, že odoslaná požiadavka je v štruktúre systému WEXBO v aktuálnej verzii v1 a obsah tela je vo formáte JSON s kódovaním UTF-8.

URL adresa#

Základná URL adresa pre požiadavky API je pre všetky profily rovnaká, a to:

https://api.wexbo.com/

Vyžadované je šifrované spojenie prostredníctvom protokolu HTTPS, keďže v opačnom prípade, pri využití nešifrovaného spojenia HTTP požiadavka nebude spracovaná.

Celková požiadavka sa skladá z HTTP hlavičiek, konkrétnej metódy, endpointu, parametrov popísaných nižšie, prípadne aj tela požiadavky vo formáte JSON.

https://api.wexbo.com/{ENDPOINT}/{NULL|ID|COUNT}?{URL_PARAMETERS}požiadavkaget

Koncový bod#

Zároveň URL adresa musí obsahovať aj tzv. endpoint (koncový bod). Konečná URL adresa pre volanie požiadavky pre zobrazenie zoznamu produktov bude vyzerať nasledovne:

https://api.wexbo.com/productspožiadavkaget

Zozname všetkých dostupných endpointov nájdete nižšie v dokumentácii v sekcii Odkazy, kde sú detailne popísané, keďže každý endpoint má vlastné parametre, dostupné metódy a rôznu štruktúru pre dáta požiadavky či samotné dáta odpovede.

Identifikátor#

V prípade, že chcete zobraziť konkrétny detail jedného záznamu (metóda GET), alebo aktualizovať konkrétny záznam (metóda PUT), prípadne daný záznam zmazať (metóda DELETE), je nutné hneď za endpointom pridať {ID} (identifikátor záznamu). Napríklad pre zobrazenie detailu produktu s ID 1000001 je to URL adresa požiadavky:

https://api.wexbo.com/products/1000001požiadavkaget

URL parametre#

Do URL požiadavky je možné pridať niektoré všeobecné nepovinné URL parametre, ktorých zoznam nájdete v tabuľke nižšie. Bližšie informácie niektorých všeobecných URL parametrov sú popísané nižšie v dokumentácii.

https://api.wexbo.com/products?fields=id&options=pagination,links&sort=id&direction=desc&page=1&offset=0&limit=25požiadavkaget

ParameterTypPopis
fieldslist, arrayPožadované atribúty odpovede oddelené čiarkou. Predvolená hodnota je zoznam predvolene zobrazených atribútov konkrétneho endpointu. Príklad použitia v prípade typu list: fields=id,code,name. Príklad použitia v prípade typu array: fields[]=id&fields[]=code&fields[]=name.
optionslist, arrayZobrazenie doplnkových možností v odpovedi. Predvolene je hodnota parametru prázdna. Možné je použiť nasledujúce hodnoty oddelené čiarkou: result, data, count, pagination, links. Príklad použitia v prípade typu list: options=count,pagination,links. Príklad použitia v prípade typu array: options[]=count&options[]=pagination&options[]=links.
filterlist, objectMožnosť nastavenia viacerých filtrov pre zobrazenie len konkrétnych záznamov. Príklad použitia v prípade typu list: filter=date_from:2000-01-01,date_to:2000-12-31. Príklad použitia v prípade typu object: filter[date_from]=2000-01-01&filter[date_to]=2000-12-31.
sortlist, objectZoradenie zoznamu záznamov na základe určeného poľa. Povolené hodnoty, resp. zoznam atribútov pre radenie je zobrazený v konkrétnom endpointe. Príklad použitia v prípade typu list: sort=id. Príklad použitia v prípade typu list: sort=id:asc,name:desc. Príklad použitia v prípade typu object: sort[id]=asc&sort[name]=desc.
directionenumSpôsob predvoleného abecedného radenia záznamov na základe URL parametra sort. Zadať je možné len hodnotu asc (A - Z, 0 - 9, vzostupne) alebo desc (Z - A, 9 - 0, zostupne). Predvolenú hodnotu má nastavenú každý endpoint zvlášť. Príklad použitia: direction=asc.
pageintegerAktuálna strana. Predvolená hodnota je 1 (prvá strana). Príklad použitia: page=2.
offsetintegerNastavená začiatočná pozícia záznamov pri stránkovaní. V prípade použitia parametru page sa parameter offset neuplatní. Predvolená hodnota je 0 (od začiatku). Príklad použitia: offset=25.
limitintegerNastavenie stránkovania. Predvolená hodnota je 25 (záznamov na stranu) a maximálna hodnota je 250 (záznamov na stranu). Príklad použitia: limit=100.

Polia#

Každý endpoint obsahuje predvolené atribúty alebo či inak polia, ktoré sú súčasťou JSON tela odpovede požiadavky a sú už zahrnuté v parametri data. V prípade zadania ďalších hodnôt do URL parametra fields je možné v odpovedi v parametri data zobraziť ďalšie atribúty, ktoré konkrétny endpoint podporuje. Názvy atribútov sú v tzv. snakeCase formáte (slová bez diakritiky, zapísané malými písmenami, oddelené podtržníkom). Príklad zadania požiadavky pre zobrazenie požadovaných atribútov:

https://api.wexbo.com/products?fields=id,code,namepožiadavkaget

{
···
"data": [
{
"id": 1000001,
"code": "product_code",
"name": "Product name",
},
···
],
···
}odpoveďjson

Všetky podporované atribúty pre URL parameter fields sú popísané v konkrétnom endpointe.

Doplnkové možnosti#

V odpovedi je možné zobraziť aj ďalšie doplnkové možnosti a to prostredníctvom URL parametra options, ktorý je možné zadávať ako typ list alebo ako typ array. Dané typy parametra však nie je možné kombinovať.

V prípade typu list je možné do parametra zadať viacero hodnôt oddelených čiarkou.

https://api.wexbo.com/products?options=result,count,pagination,linkspožiadavkaget

V prípade typu array je možné zadať parameter do URL adresy viac krát.

https://api.wexbo.com/products?&options[]=result&options[]=count&options[]=pagination&options[]=linkspožiadavkaget

HodnotaPopis
resultV JSON tele odpovedi bude parameter result hodnota typu string namiesto boolean. Teda namiesto hodnoty true bude ok a namiesto hodnoty false bude error. Pre ľahšie programátorské spracovanie odpovedí odporúčame používať pôvodné hodnoty typu boolean. Pre zobrazenie parametra result súčasne nesmie byť použitý parameter data.
dataZobraziť v JSON tele odpovedi len samotný obsah parametra data (len dáta bez ďalších parametrov). V tomto prípade sa v tele nezobrazia žiadne ďalšie parametre ako result, count, pagination, links, errors atď. pričom dané údaje je možné získať len z dostupných HTTP hlavičiek.
countInformácia o celkovom dostupnom počte všetkých záznamov na základe zadaných filtrov. Pre zobrazenie parametra count súčasne nesmie byť použitý parameter data. Parameter count je možné využiť len v endpointoch, ktoré zobrazujú zoznam záznamov (metóda GET bez {ID}).
paginationInformácie o stránkovaní zobraziť v samotnom JSON tele odpovedi. Pre zobrazenie parametra pagination súčasne nesmie byť použitý parameter data. Parameter pagination je možné využiť len v endpointoch, ktoré zobrazujú zoznam záznamov (metóda GET bez {ID}).
linksZobraziť v JSON tele odpovedi aj odkazy, napríklad ohľadom stránkovania. Pre zobrazenie parametra links súčasne nesmie byť použitý parameter data. Parameter links je možné využiť len v endpointoch, ktoré zobrazujú zoznam záznamov (metóda GET bez {ID}).

Filtrovanie#

V prípade požiadavky na zoznam záznamov (metóda GET bez {ID}) je možné si prostredníctvom rôznych filtrov jednotlivých endpointov zobraziť len záznamy na základe zvolených parametrov. URL parameter filter môže byť zadaný buď v jednoduchom čitateľnom zápise typu list alebo naopak typu object pre jednoduchšie parasovanie pomocou programu. Dané zápisy však nie je možné kombinovať.

Zoznam filtrov

V prípade typu list zadajte do URL parametra filter hodnoty oddelené čiarkou, pričom každá z hodnôt musí obsahovať identifikátor filtrovaného parametra a filtrovanú hodnotu oddelené dvojbodkou.

https://api.wexbo.com/products?filter=active:1,date:2000-12-31požiadavkaget

Samostatné filtre

V prípade typu object je možné parameter filter zadať do URL adresy opakovane s rôznym identifikátorom filtrovaného parametra, ktorá bude obsahovať samotnú filtrovanú hodnotu.

https://api.wexbo.com/products?filter[active]=1&filter[date]=2000-12-31požiadavkaget

Hodnota filtra

Hodnotu filtra je nutné zadať podľa typu, ktorý ma daný filter určenú. Podrobné informácie ohľadom správneho formátu jednotlivých typov sú popísané v odstavci Dátové typy.

https://api.wexbo.com/products?filter=active:1požiadavkaget

https://api.wexbo.com/products?filter[active]=truepožiadavkaget

Zoznam hodnôt filtra

Takmer všetky filtre okrem typu boolean môžu obsahovať viacero hodnôt, ktoré oddelíte znakom bodkočiarky ;. V tomto prípade sa zobrazia záznamy, ktoré vyhovujú aspoň jednej z hodnôt, teda pre zadané hodnoty sa použije logická spojka OR.

https://api.wexbo.com/products?filter=id:1000001;1000002;1000003požiadavkaget

https://api.wexbo.com/products?filter[id]=1000001;1000002;1000003požiadavkaget

Rozsah hodnôt filtra

Filtre typu integer, float, date, datetime môžu obsahovať rozsah hodnôt, ktoré oddelíte znakom pomlčky -. V tomto prípade sa zobrazia záznamy, ktoré vyhovujú zadanému rozsahu hodnôt vrátane zadaných hodnôt.

https://api.wexbo.com/products?filter=id:1000001-1000099požiadavkaget

https://api.wexbo.com/products?filter[id]=1000001-1000099požiadavkaget

https://api.wexbo.com/products?filter[date]=2000-01-01-2000-12-31požiadavkaget

Stránkovanie#

V prípade požiadavky na zoznam záznamov (metóda GET bez {ID}) sa zobrazuje len určitý počet záznamov, pričom sa využíva tzv. stránkovanie. Predvolene je počet zobrazujúcich záznamov na stranu nastavený na hodnotu 25.

Nastaviť je možné aj inú hodnotu a to prostredníctvom URL parametra limit, do ktorého je možné zadať hodnotu od 1 do 250. Aktuálne nastavené stránkovanie požiadavky sa vždy zobrazí v odpovedi stránkovania v parametri paging.

https://api.wexbo.com/products?limit=50požiadavkaget

Predvolene sa zobrazí prvá stránka so zoznamom záznamov, keďže URL parameter page má predvolenú hodnotu 1. Pridaním daného parametra do URL adresy požiadavky je možné zobraziť zoznam záznamov ďalších stránok.

https://api.wexbo.com/products?page=2požiadavkaget

Namiesto parametra page je možné použiť URL parameter offset, kedy sa majú zobraziť záznamy od nastavenej hodnoty. Predvolene má daný parameter hodnotu 0 (od začiatku). Ak je zadaný súčasne aj parameter page, tak parameter offset sa v požiadavke neuplatní, teda pre stránkovanie je možné použiť len jeden z nich. Nastaviť je možné napríklad zobrazenie záznamov od 50-teho záznamu 25 záznamov na stranu, teda záznamy v poradí 5075:

https://api.wexbo.com/products?limit=25&offset=50požiadavkaget

Súčasťou odpovede takýchto požiadaviek sú HTTP hlavičky X-Pagination-... obsahujúca informácie o stránkovaní.

...
X-Pagination-Pages:
10
X-Pagination-Page: 1
X-Pagination-Offset: 0
X-Pagination-Count: 25
X-Pagination-Total: 250
X-Pagination-Paging: 25
...odpoveďhttp

Ak chcete informácie o stránkovaní zobraziť priamo v JSON tele odpovede, je nutné v požiadavke využiť parameter options obsahujúcu hodnotu pagination.

https://api.wexbo.com/products?options=paginationpožiadavkaget

{
···
"pagination": {
"pages": 10,
"page": 1,
"offset": 0,
"count": 25,
"total": 250,
"paging": 25,
"status": "continue"
},
···
}odpoveďjson

ParameterTypPopis
pagination.pagesintegerCelkový počet dostupných strán záznamov.
pagination.pageintegerAktuálna strana záznamov.
pagination.offsetinteger
pagination.countintegerPočet záznamov na aktuálnej strane.
pagination.totalintegerCelkový počet záznamov (na všetkých stranách).
pagination.pagingintegerPočet záznamov na stranu. Aktuálne nastavené stránkovanie pomocou URL parametra limit.
pagination.statusenumAktuálny stav stránkovania, ktorý určuje či je existuje aj nasledujúca strana s ďalšími záznamami. Parametr môže obsahovať hodnoty continue (je možné prejsť na ďalšiu stranu), done (posledná strana), error (strana mimo rozsah stránkovania).

Zoradenie#

V prípade požiadavky na zoznam záznamov (metóda GET bez {ID}) je možné si nastaviť radenie zobrazovaných záznamov. Požiť je možné buď jednoduché radenie prostredníctvom jedného parametra využitím URL parametrov sort typu list a parametra direction alebo je možné použiť zložitejšie radenie prostredníctvom viacerých parametrov využitím URL parametra sort a to buď typu list alebo object. Dané URL parametre či typy však nie je možné kombinovať.

Príklad jednoduchého radenia s využitím URL parametrov sort a direction. Parameter direction je využiť aj samostatne.

https://api.wexbo.com/products?sort=id&direction=ascpožiadavkaget

Príklad kombinovaného radenia len s využitím URL parametra sort typu list.

https://api.wexbo.com/products?sort=id:ascpožiadavkaget

https://api.wexbo.com/products?sort=id:asc,name:descpožiadavkaget

Príklad kombinovaného radenia len s využitím URL parametra sort typu object.

https://api.wexbo.com/products?sort[id]=ascpožiadavkaget

https://api.wexbo.com/products?sort[id]=asc&sort[name]=descpožiadavkaget

JSON telo#

V prípade požiadaviek s metódou PUT alebo POST musí požiadavka obsahovať aj telo s obsahom požiadavky. Naopak požiadavky s metódami GET a DELETE telo neobsahujú. Telo požiadavky musí byť v štruktúrovanom formáte JSON kódované prostredníctvom znakovej sady UTF-8. Príklady s kompletným výpisom tela aj popisom jednotlivých atribútov pre konkrétne endpointy nájdete nižšie po rozkliknutí požadovaného endpointu.

https://api.wexbo.com/productspožiadavkapost

{
"name": "Tenisová raketa",
"active": true,
"price": 50.99,
···
}požiadavkajson

Dátové typy#

TypPopis
booleanBoolean hodnota, pričom podporované sú len hodnoty uvedené v príklade. Príklad: true a false alebo 1 a 0.
stringŠtandardný reťazec znakov v kódovaní UTF-8.
integerCelé číslo. Príklad: 123456.
floatDesatinné číslo, pričom ako oddeľovač desatinných miest je použitý znak bodky .. Príklad: 20.45.
listViaceré hodnoty oddelených znakom čiarky ,. Príklad: 1,2,3.
arrayPole hodnôt typu JSON alebo URL. Príklad: JSON array [1, 2, 3] alebo URL array x[]=1&x[]=2&x[]=3.
objectObjekt typu JSON alebo URL. Príklad: JSON object {'id': 1, 'name': 'test'} alebo URL object x[id]=1&x[name]=test.
dateDátum vo formáte YYYY-MM-DD podľa štandardu ISO 8601. Príklad: 2000-12-31.
datetimeDátum a čas vo formáte YYYY-MM-DD HH:MM:SS podľa štandardu ISO 8601. Príklad: 2000-12-31 23:59:59.
enumNiektorá z predvolených hodnôt.
uuidValidný UUID 32 znakový reťazec hexadecimálnych znakov (a - f, 0 - 9) oddelených znakom pomlčky - podľa štandardu RFC 9562. Príklad: 0192615c-a59d-7f2c-96a6-0f80c014856a
codeReťazec znakov, v ktorom môžu byť použité len základné alfa-numerické znaky (a - z, 0 - 9) bez diakritiky a znaky pomlčka -, podtržník _ a bodka . (bez medzier).
imageObsah obrázku v data inline formáte zakódovaný prostredníctvom Base64. Príklad: data:image/jpeg;base64,....
urlURL adresa v absolútnom (externá) alebo aj v relatívnom (lokálna) tvare. Príklad: https://example.com/image.jpg alebo /files/images/image.jpg.
emailValidná e-mailová adresa. Príklad: example@domain.com.
languageKód jazyka podľa štandardu ISO 639-1. Príklad: cs alebo sk alebo en.
currencyKód meny podľa štandardu ISO 4217. Príklad: CZK alebo EUR alebo USD.
countryKód krajiny podľa štandardu ISO 3166-1 alpha-2. Príklad: cz alebo sk alebo us.

Odpoveď#

Súčasťou každej odpovede servera na požiadavku klienta je telo vo formáte JSON s parametrami result, data, errors.

Stav#

Úspešne spracovaná požiadavka obsahuje v JSON tele odpovedi, hneď na začiatku parameter result s hodnotou ok. Naopak chybne spracovaná požiadavka obsahuje parameter result s hodnotou error.

{
"result": "ok",
···
}odpoveďjson

Dáta#

Základom odpovede na požiadavku sú samotné dáta, ktoré sú obsiahnuté v JSON tele odpovedi v parametri data. V prípade požiadavky s metódou DELETE (zmazanie záznamu) má daný parameter prázdnu hodnotu. V opačnom prípade parameter obsahuje predvolené atribúty, prípadne aj atribúty zahrnuté v URL parametry fields.

{
···
"data": {
"id": 1,
···
},
···
}odpoveďjson

Stránkovanie#

Súčasťou odpovede požiadaviek sú HTTP hlavičky X-Pagination-... obsahujúca informácie o stránkovaní. Ak chcete informácie o stránkovaní zobraziť priamo v JSON tele odpovede, je nutné v požiadavke využiť parameter options obsahujúcu hodnotu pagination. Podrobné informácie aj s príkladmi a popisom jednotlivých možností stránkovania nájdete vyššie v odstavci Požiadavka / Stránkovanie.

Odpoveď obsahuje aj HTTP hlavičku Link obsahujúcu automaticky generované odkazy pre jednoduchšiu možnosť vykonania ďalšej akcie. V prípade stránkovania sú to napríklad odkazy na požiadavky pre zobrazenie ďalšej strany záznamov.

Link: <https://api.wexbo.com/products?page=2&options=links>; rel="self", <https://api.wexbo.com/products?page=1&options=links>; rel="first", <https://api.wexbo.com/products?page=1&options=links>; rel="prev", <https://api.wexbo.com/products?page=3&options=links>; rel="next", <https://api.wexbo.com/products?page=9&options=links>; rel="last"odpoveďhttp

Ak chcete informácie o odkazoch zobraziť priamo v JSON tele odpovede, je nutné v požiadavke využiť parameter options obsahujúcu hodnotu links.

https://api.wexbo.com/products?page=2&options=linkspožiadavkaget

{
···
"links": {
"self": "https://api.wexbo.com/products?page=2&options=links",
"first": "https://api.wexbo.com/products?page=1&options=links",
"prev": "https://api.wexbo.com/products?page=1&options=links",
"next": "https://api.wexbo.com/products?page=3&options=links",
"last": "https://api.wexbo.com/products?page=9&options=links"
},
···
}odpoveďjson

ParameterTypPopis
linksobjectZoznam URL adries požiadavky pre stránkovanie.
links.selfurlAktuálna strana záznamov alebo aktuálne URL adresa požiadavky.
links.firsturlPrvá strana záznamov.
links.prevurlPredchádzajúca strana záznamov.
links.nexturlNasledujúca strana záznamov.
links.lasturlPosledná strana záznamov.

Chyby#

Zoznam konkrétnych informácií týkajúcich sa chýb požiadavky nájdete vždy v JSON tele odpovede na konci v parametri errors. V prípade úspešného spracovania požiadavky by mal byť zoznam parametra prázdny (prázdne array pole). Napriek tomu sa v danom zozname môžu nachádzať aj varovania s kódom 100, ktoré nie sú závažnými chybami, teda nebránia spracovaniu požiadavky, ale len upozorňujú na prípadné nezrovnalosti v požiadavke.

{
···
"errors": [
{
"code": 404,
"msg": "Information about error",
"error": "...",
"field": "..."
},
{
"code": 100,
"msg": "Just some warning",
"error": "...",
"field": "..."
}
]
}odpoveďjson

ParameterTypPopis
errorsarrayZoznam chýb a varovaní.
errors[]objectInformácie o jednej z chýb alebo varovaní.
errors[].codeintegerVšeobecný stavový kód chyby popísaný nižšie.
errors[].msgstringKrátky popis chyby.
errors[].errorstringInterný identifikačný kód chyby pre lepšiu identifikáciu v prípade požiadavky na dohľadanie problému.
errors[].fieldstringProblémový parameter, metóda, atribút, pole, možnosť alebo položka požiadavky.

Kódy odpovedí#

Súčasťou každej odpovede servera na požiadavku klienta je kód o stave odpovedi v hlavičke (HTTP response status codes). Väčšina odpovedí zvyčajne obsahuje nižšie uvedené kódy odpovedí.

Úspešné spracovanie#

KódNázovPopis
200OKÚspešné načítanie alebo vykonanie požadovaného úkonu na zázname (metódy GET, PUT, DELETE).
201CreatedZáznam bol úspešne vytvorený (metóda POST).
204No ContentÚspešné spracovanie požiadavky no bez odpovede. Napríklad pri niektorých požiadavkách zmazania záznamu (metóda DELETE).

Chyba pri spracovaní#

KódNázovPopis
301Moved PermanentlyPremiestnenie zastaralej endpoint požiadavky na inú URL adresu. Nová URL adresa je uvedená v HTTP hlavičke Location. Odporúčame si čo najskôr URL adresu v implementácii zmeniť na novú.
400Bad RequestChyba v požiadavke klienta (napríklad v objekte JSON).
401UnauthorizedNesprávna autorizácia požiadavky klienta. Nezadaná hlavička autorizácie alebo nesprávny či neplatný API token. Podrobné informácie sú popísané v odstavci Autorizácia.
403Forbidden
402Payment RequiredOdpoveď požiadavky je spoplatnená, pričom v profile je nedostatok dostupného kreditu. Podrobné informácie sú popísané v odstavci Obmedzenia / Kredit.
404Not FoundPožadovaný záznam sa nenašiel.
405Method Not AllowedNepovolená metóda REQUEST METHOD v požiadavke klienta. Povolené sú len metódy GET, POST, PUT, DELETE. Podrobné informácie sú popísané v odstavci Požiadavka / HTTP metódy.
408Request TimeoutPrekročená maximálna doba na vykonanie požiadavky klienta.
409ConflictPožiadavku nebolo možné spracovať z rôznych dôvodov, pričom najčastejšie sa jedná o nesprávny formát hodnôt odosielaných atribútov, či nepoužitie povinných atribútov.
413Payload too largePríliš veľký obsah parametrov požiadavky klienta. Najčastejšie sa jedná o veľmi objemné obrázky, ktoré je možné posielať taktiež prostredníctvom JSON požiadavky. Podrobné informácie sú popísané v odstavci Obmedzenia / Veľkosť požiadavky.
422Unprocessable EntityNesprávne zadaná niektorá hodnota alebo parameter požiadavky.
423LockedBlokovanie požiadavky klienta najčastejšie z dôvodu nepovolenej IP adresy klienta, alebo exspirácie API tokenu či samotného pluginu API. Podrobné informácie sú popísané v odstavci Obmedzenia / Prihlásenia.
426Upgrade RequiredVyžadované nastavenie vyššej verzie požiadavky klienta. Aktuálna verzia API je v1. Verziu API zadávate do HTTP hlavičky Content-Type, pričom popis je uvedený vyššie v dokumentácii. Podrobné informácie sú popísané v odstavci Požiadavka / HTTP hlavičky.
429Too Many RequestsPožiadavku klienta nebolo možné vykonať z dôvodu dosiahnutia maximálneho počtu požiadaviek, buď za určitý čas alebo na základe nastavených limitov v plugine API. Podrobné informácie sú popísané v odstavci Obmedzenia / Počet požiadaviek.
500Internal Server ErrorNedostupnosť API serveru z dôvodu neplánovaného výpadku. Pre bližšie informácie kontaktujte našu technickú podporu alebo zopakujte požiadavku neskôr.
501Not ImplementedNeexistujúci alebo aktuálne nepodporovaný endpoint požiadavky.
503System maintenancePrebiehajúca údržba lebo dočasný výpadok API systému. Zopakujte požiadavku neskôr.
505HTTP Version Not SupportedPožiadavka klienta bola odoslaná cez nepodporovaný protokol HTTP. Všetky požiadavky je nutné posielať cez šifrovaný protokol HTTPS. Podrobné informácie sú popísané v odstavci Požiadavka / URL adresa.

Obmedzenia#

Aby nedochádzalo k zbytočnému preťažovaniu API serveru zahlcovaním požiadaviek, či už úmyselne alebo neúmyselne z dôvodu nesprávneho návrhu napojenia, má API nastavené určité predvolené limity. Vyžaduje sa tak dôraz na správny návrh a optimalizáciu interakcie s API (webhooks, pagination, filter, fields, atď.), aby bol k prístup k API po celú dobu stabilný a dostupný pre všetkých.

Prihlásenia#

Pokusy pre prihlásenie sú limitované počtom max. 5 neúspešných pokusov, pričom Ďalšie požiadavky nebudú spracované a na požiadavky bude odpovedané HTTP kódom 423 Locked.

Veľkosť požiadavky#

Požiadavky s HTTP metódou PUT, teda aktualizácia záznamov, môžu obsahovať maximálne 100 parametrov s hodnotami, zároveň celé telo požiadavky pri HTTP metódach PUT a POST nesmie presiahnuť veľkosť 1 MB (hlavne v prípade vkladania obrázkov). V prípade, že je tento limit prekročený, požiadavka sa nevykoná a na požiadavku bude odpovedané s HTTP kódom 413 Payload too large.

Počet požiadaviek#

V rámci krátkeho času je možné odosielať len určitý počet požiadaviek, pričom po prekročení limitu bude na požiadavky odpovedané HTTP kódom 429 Too Many Requests.

Systém má aktuálne pevne nastavený hodinový, a taktiež denný limit na počet požiadaviek, ktorý je pri bežnom a správnom používaní API výrazne dostačujúci.

Jedným z limitov je aj počet súbežných požiadaviek v jednej sekunde, ktorý je aktuálne stanovený na maximálne 5 požiadaviek za sekundu pre jedno pripojenie (token). Odporúčame si tak pri väčšom počte požiadaviek nastaviť aj krátky čas oneskorenia, alebo budete musieť požiadavky odoslať znova.

Kredit#

Aj keď vedenie API pre používateľov nie je spoplatnené nejakým pevným mesačným poplatkom, spoplatnené sú samotné požiadavky, resp. záznamy v požiadavkách. Dynamicky sa využíva dostupný kredit profilu, pričom za každý záznam z požiadavky je profilu strhnutý 1 kredit. Pri nedostatku kreditu sa požiadavka nevykoná a na požiadavku bude odpovedané s HTTP kódom 402 Payment Required.

Kredit je možné si v profile dobiť cez administráciu https://admin.wexbo.com v sekcii NASTAVENIA / WEB v položke Dostupný kredit po kliknutí na tlačítko DOBIŤ KREDIT.

Partnerské implementácie, ktoré sú prepojené s natívnym pluginom systému nie sú spoplatnené prostredníctvom kreditu. Teda takýto plugin Vám nebude stŕhať žiadny kredit v profile.

Príklady#

Zobrazenie produktov#

https://api.wexbo.com/products?fields=id,code,name,foo&options=pagination,links&sort=id&direction=asc&page=1&offset=0&limit=3požiadavkaget

Authorization: Bearer {API_TOKEN}
Content-Type: application/vnd.wexbo.v1požiadavkahttp

200 OK
Content-Type:
application/vnd.wexbo.v1+json; charset=utf-8odpoveďhttp

{
"result": "ok",
"data": [
{
"id": 1000001,
"code": "tenrak01",
"name": "Tenisová raketa",
},
{
"id": 1000002,
"code": "tankt72m1",
"name": "Tank T-72 M1",
},
{
"id": 1000003,
"code": "office30",
"name": "Microsoft Office 2030",
},
],
"pagination": {
"pages": 30,
"page": 1,
"offset": 0,
"count": 3,
"total": 90,
"paging": 3,
"status": "continue"
},
"links": {
"self": "https://api.wexbo.com/products?page=2&options=links",
"first": "https://api.wexbo.com/products?page=1&options=links",
"prev": "https://api.wexbo.com/products?page=1&options=links",
"next": "https://api.wexbo.com/products?page=3&options=links",
"last": "https://api.wexbo.com/products?page=9&options=links"
},
"errors": [
{
"code": 100,
"msg": "Field foo not exist.",
"error": "fields_1",
"field": "foo"
}
]
}odpoveďjson

Aktualizácia produktu#

Zobrazenie príkladu požiadavky na URL adresu s metódou GET, HTTP hlavičkou a samotným JSON telom.

https://api.wexbo.com/products/1000001požiadavkaget

Authorization: Bearer {API_TOKEN}
Content-Type: application/vnd.wexbo.v1požiadavkahttp

{
"name": "Tenisová raketa (vypredaná)",
"active": false,
"price": 40.99
}požiadavkajson

Výsledná odpoveď s HTTP hlavičkou a JSON telom.

200 OK
Content-Type:
application/vnd.wexbo.v1+json; charset=utf-8
Link: <http://api.wexbo.co/products/1000001>; rel="self"odpoveďhttp

{
"result": "ok",
"data": [
{
"id": 1000001
}
],
"errors": []
}odpoveďjson

Denník zmien#

DátumVerziaPopis
2025 Q1v1Public API for users (we are preparing...)
2024-11-22v1Public API for internal testing
2019-02-01v1For internal developers only

ODKAZY#

Technická špecifikácia jednolivých endpoint akcií API je aktuálne dostupná len pre prihlásených vývojárov, resp. po prihlásení vývojárskeho API tokenu.