[custom_add_property_button]
[custom_sign_button]

První REST API: chyba, která zničí i funkční odpověď

Světlo řešte dřív než barvu stěny. Dítě by mělo mít denní světlo z boku, ne přímo do očí a ne za zády, kde si dělá stín na sešit. Večer potřebuje vlastní lampu s teplým světlem, umístěnou tak, aby osvětlovala papír, ne dítě. Blikající zářivka nebo stropní světlo za hlavou jsou častým důvodem, proč děti po chvíli čtení bolí oči a začnou odbíhat.

Co dělat preventivně a co nedělat: kartáčujte zuby denně nebo alespoň obden. Používejte pasta určená pro psy, nikdy ne lidská – obsahuje xylitol a fluorid, které jsou pro psy toxické. Čistěte i vnitřní stranu zubů, i když je to nepříjemné. Nabízejte vhodné žvýkací hračky a dentální pamlsky, ale pozor na příliš tvrdé předměty, jako jsou kosti, parohy nebo kameny – ty zuby lámou. Častou chybou je spoléhat jen na suché krmivo. To kámen nezastaví, jen ho obrousí na některých místech. Další chybou je snažit se kámen odloupnout nehtem nebo nástrojem doma. Můžete poškodit sklovinu a způsobit infekci.

Minimalismus bez vyhazování není o tom mít co nejméně věcí, ale o tom mít věci, které mají místo a důvod. Když se to podaří, uklízení je rychlejší, hledání kratší a rozhodování jednodušší. Nemusíte být dokonalí. Stačí, když po každé selekci zůstane doma o jednu vrstvu méně a o jednu funkční zónu více.

Zkuste zvukovou hru: vyberte si dva stromy s různou kůrou – třeba břízu a dub. Děti zavřou oči a vy u jednoho z nich klepete klackem. Podle zvuku mají poznat, u kterého stojíte. U břízy je zvuk ostřejší, u dubu temnější. Stejně tak můžete šustit mechem, listím nebo jehličím. Pozor na to, aby dítě nestálo přímo u kmene a neodřelo si obličej. Typická chyba je hrát hru na rušné stezce, kde zvuk přehluší turisté – vyberte klidné místo stranou od cesty.

Oddělit dětský pracovní koutek neznamená koupit nový nábytek nebo předělat celý pokoj. Většina rodičů udělá stejnou chybu: umístí stůl tam, kde je zrovna místo, a ne tam, kde se dítě dokáže soustředit. Přitom právě umístění a odstínění od zbytku místnosti rozhoduje o tom, jestli dítě u úkolů vydrží deset minut, nebo půl hodiny.

Autentizaci neřešte až na konci. API bez ověření je otevřené dveře. Pro začátek stačí token v hlavičce Authorization. Nikdy neposílejte heslo v URL, protože se ukládá do logů a historie prohlížeče. Token mějte krátkodobý a obnovujte ho. Pokud API používá více klientů, zvažte, zda potřebujete rozlišovat oprávnění. Bez toho se dostanete do situace, kdy jeden klient může mazat data druhého.

Poslední věc, na kterou se zapomíná, je verzování. První verze API vypadá jako konečná, ale za půl roku budete potřebovat změnit formát odpovědi. Když verzi nemáte v adrese nebo v hlavičce, rozbijete všechny existující klienty. Stačí jednoduché /v1/ a máte prostor pro změny. A nezapomeňte na logování. Bez záznamu požadavků a odpovědí se při chybě nedozvíte, co se stalo. Logujte metodu, cestu, stavový kód a čas, ale nikdy necitlivá data.

První REST API často vzniká jako jednoduchý skript: klient pošle požadavek, server vrátí data. Jenže právě tady se začínají dít chyby, které se projeví až ve chvíli, kdy se na stejný endpoint připojí druhý klient nebo když se data změní. Základem je pochopit, že REST není knihovna ani framework, ale způsob, jak spolu komunikovat přes HTTP. Požadavek má vždy metodu, adresu, hlavičky a případně tělo. Odpověď má stavový kód, hlavičky a tělo. Pokud tohle rozlišení ignorujete, dřív nebo později narazíte.

Stavové kódy nejsou dekorace Server musí vracet správný stavový kód. 200 znamená úspěch, 201 vytvoření, 204 úspěch bez těla. 400 je chyba na straně klienta, 401 chybějící autentizace, 403 nedostatečné oprávnění, 404 nenalezeno, 409 konflikt, 422 nezpracovatelná data. Když na všechno posíláte 200 s tělem typu {“error”: “něco se pokazilo”}, klient nemá šanci strojově rozlišit úspěch od chyby. A to je přesně ten moment, kdy se z jednoduchého API stane neudržovatelný kód.

Formát odpovědi držte konzistentní. Pokud vracíte JSON, vracejte JSON vždy, i pro chyby. Stejně tak hlavička Content-Type musí odpovídat skutečnosti. Častá chyba je poslat text/html s JSON obsahem, což některé klienty zmate. U seznamů myslete na stránkování. Nikdy nevracejte všechny záznamy najednou, jinak při růstu dat přestane API odpovídat. Použijte parametry jako limit a offset nebo kursor. A v odpovědi uveďte, kolik záznamů celkem existuje, aby klient věděl, jestli má načítat dál.

Nejčastější chyba je záměna GET a POST. GET se používá pro čtení a nesmí měnit stav na serveru. POST pro vytvoření nového zdroje. Pokud GETem mažete nebo měníte data, narušujete idempotenci a cache. Prohlížeč nebo proxy server může požadavek zopakovat a vy smažete dvakrát. Stejně tak PUT slouží k nahrazení celého zdroje, PATCH k částečné úpravě. Když pošlete PUT s polovinou polí, zbytek se může vymazat. Vždy dopředu určete, co která metoda znamená, a držte se toho i v dokumentaci.

Please Sign In Before Adding a Property Or Sign Up If You Don't Have An Account