REST API: co se stane mezi odesláním a přijetím dat
Větrání, vlhkost a prach pod šikmým strop
Ještě než udeří první silnější mrazy, truhlíky přesuňte na chráněné místo. Ideální je studený skleník, zasklená veranda, garáž s oknem nebo prostor u zdi orientované na jih. Teplota by se měla držet mezi 2 a 8 °C. Vytápěná místnost je pro většinu bylinek nevhodná, protože při teplu a nedostatku světla rostliny vyhánějí tenké výhony a pak uhynou. Pozor také na průvan a na místa, kde se drží vlhko.
Izolaci naskládejte tak, aby vyplnila celou tloušťku krokví a nevznikly dutiny u krokví a v rozích. Mezi izolací a parozábranou nesmí zůstat vzduchová kapsa, jinak se v ní drží vlhkost. U dvou vrstev izolace druhou vrstvu křížte, aby překryla spáry první. Nemačkejte izolaci do tenkých štěrbin; raději doplňte tenčí vrstvu. Před zaklopením zkontrolujte, že nikde neprosvítá a že izolace není prověšená.
Zrcadlo je nejsilnější nástroj, ale jen když visí správně. Umístěte ho na stěnu proti dveřím nebo oknu, odkud přichází světlo, a to tak, aby odráželo co nejvíc volného prostoru – ne dveře, které se otevírají, ani tmavý kout. Velké zrcadlo od podlahy ke stropu přidá místnosti celou jednu vizuální rovinu. Naopak mnoho malých zrcátek roztroušených po stěnách působí chaoticky a prostor drobí. Zrcadlo v rámu zvolte úzký, jinak zbytečně ukrajuje z odrazu.
Nejčastější chyby začátečníků mají společné jedno: spěch. Zapomenutá čárka v JSON, chybějící uvozovky kolem řetězců, poslání dat jako prostý text místo JSON, nebo špatně zakódovaná diakritika v adrese. Adresa musí být percent-encoded, jinak ji server může přečíst špatně. Dále lidé zapomínají, že GET nesmí měnit data, a používají ho k zápisu. To funguje jen do chvíle, než narazíte na cache nebo na server, který to odmítne.
Druhým signálem je brzdění. Dítě musí umět zastavit nohou o zem i brzdou na řídítkách, a to dřív, než vyjede z dvorku. Vyzkoušejte to na mírném svahu: rozjeďte se spolu, dítě jede vedle vás a na povel zastaví. Pokud místo brzdění strká nohy do stran a kolo se kymácí, je brzda zatím jen dekorace. Třetím signálem je rozjezd. Dítě, které se umí rozjet bez cizí pomoci, zvládne i první metry bez koleček, protože rozjezd je nejtěžší část jízdy.
Začněte tím, že si požadavek rozložíte na čtyři části: metodu, adresu, hlavičky a tělo. Metoda určuje, co chcete udělat – GET pro čtení, POST pro vytvoření, PUT nebo PATCH pro úpravu, DELETE pro smazání. Adresa musí být přesná včetně cesty k prostředku, například /uzivatele/42. Do hlaviček patří Content-Type s hodnotou application/json a případně Authorization s tokenem. Tělo posíláte jen u metod, které mění data, a musí jít o platný JSON. Když chybí Content-Type, server často tělo ignoruje a vrátí chybu, která vypadá jako problém na vaší straně, i když jde jen o chybějící hlavičku.
Odpověď si vždy prohlédněte celou, ne jen tělo. Hlavičky obsahují informace o typu obsahu, o limitu požadavků nebo o tom, kam se má klient přesměrovat. Tělo bývá ve formátu JSON, ale může být i prázdné – u úspěšného smazání je to běžné a není to chyba. Pokud server vrací data v jiné struktuře, než jste čekali, ověřte si dokumentaci. API se vyvíjí a starší verze mohou mít jiné názvy polí. Nikdy nehádejte názvy klíčů, raději si je vypište z reálné odpovědi.
Praktický postup je jednoduchý. Nejdřív si požadavek složte v nástroji, kde vidíte hlavičky i tělo. Odešlete ho a přečtěte si stavový kód. Teprve pak řešte obsah. Když dostanete chybu, změňte vždy jen jednu věc a zkuste to znovu. Tím zjistíte, co ji způsobilo. Až budete mít funkční požadavek, teprve ho přepište do kódu. Ušetříte tím hodiny hledání závorky na špatném místě.
Co se děje na serveru a proč přichází chyba Server požadavek nejprve ověří. Zkontroluje, jestli zná danou cestu, jestli metoda odpovídá tomu, co cesta podporuje, a jestli jste přihlášení. Teprve pak se podívá do těla. Pokud posíláte data, která neodpovídají očekávané struktuře, vrátí stavový kód 400 s popisem, co je špatně. Nezapomeňte, že stavové kódy nejsou jen čísla pro programátory – nesou informaci. 2xx znamená úspěch, 4xx chybu na straně klienta, 5xx chybu na straně serveru. Záměna 401 a 403 je častá: 401 znamená, že vám chybí nebo je neplatný přihlašovací údaj, 403 že jste přihlášení, ale na danou operaci nemáte právo.
Když poprvé posíláte požadavek na REST API, často skončíte u chybové hlášky a nejistoty, co se vlastně pokazilo. Přitom celý proces má jen několik kroků a každý z nich se dá samostatně ověřit. Většina začátečníků ale přeskočí základy a rovnou ladí tělo odpovědi, aniž by tušili, jestli požadavek vůbec dorazil na server.