Zpracování HTTP odpovědi na požadavek
Základní info
První úroveň zpracování požadavku na API je na úrovni distribuované fronty požadavků. Požadavek se ukládá přímo do fronty a odpověď v rámci volání API je tedy odpovědí na požadavek vložení do fronty.
Do fronty lze vložit maximálně 10 požadavků v rámci jednoho volání. Každý požadavek je zpracován a výsledek zpracování je označen indexem dle původního pořadí jednotlivých požadavků (u endpointu /message
odpovídá index poli to
, u endpointu /messages
odpovídá index poli požadavku).
Odpověď HTTP 200 OK
Pro vyhodnocení úspěšného přijetí požadavku nestačí jen status 200 OK
. Je nutné ověřit, že všechny příjemci (až 10 příjemců v poli to
nebo až 10 objektů v poli messages
) byly přijaty (akceptovány). K tomu slouží pole accepted
. Zde ověřte, že se shoduje počet indexů v poli accepted
s počtem příjemců.
Může se stát, že některé z požadavků nebudou zpracovány. V takovém případě je odpověďí stále HTTP 200 OK
, ale v poli rejected
jsou indexy požadavků, které nebyly zpracovány.
Jednodušší na implementaci jsou endpointy simple/message
protože ty podporují vždy jen jednoho příjemce. Proto atribut accepted
obsahuje vždy jen hodnotu true
nebo false
na základě toho, zda byl požadavek zpracován.
Pokud rejected
není prázdný, znamená to, že některé z požadavků nebyly zpracovány. Tyto požadavky je nutné opakovat. Zároveň neplatí pravidlo, že součet počtu indexů v poli accepted
a rejected
musí být roven počtu příjemců. Může se stát, že obdržíte dva prázdné seznamy accepted
a rejected
nebo se může stát, že obdržíte část příjemců v poli accepted
a zároveň ale prázdné pole rejected
.
Vždy kontrolujte, že v poli accepted
je stejný počet indexů jako v poli to
nebo messages
.
Odpověď HTTP 40x
Odpověď 40x
znamená, že požadavek nebyl zpracován z důvodu chyby požadavku jako takového. Může se jednat o chybu v obsahu zprávy, neplatné adresy nebo chyby autentizace. Požadavek většinou nemá smysl opakovat dokud jej neupravíte.
Do fronty lze vložit maximálně 10 požadavků v rámci jednoho volání. Proto v případě, kdy vložíte více než 10 příjemců na endpointu /message
nebo více než 10 objektů v poli na endpointu /messages
, je odpovědí chyba 400 Bad Request
.
Další častou chybou může být velikost konkrétního HTTP požadavku. Doporučujeme nezasílat na API požadavky větší než 128 KB (což odpovídá více než 100 000 znakům, což by mělo být více než dostatečné pro běžné používání).
Odpověď HTTP 50x
Odpověď 500 Internal Server Error
nebo 503 Service Unavailable
znamená, že požadavek nebyl zpracován z důvodu chyby na straně API nebo serveru. Zřejmě nebude nutné požadavek měnit a bude jen potřeba počkat několik minut a požadavek zopakovat.