Rate limit
Také známé jako: limit požadavků, omezení API, throttling
Rate limit je omezení počtu požadavků, které smí jedna integrace na rozhraní poslat za daný čas. Chrání server před přetížením a u e-shopových platforem bývá navázaný na tarif — takže víc integrací znamená dělit se o stejný rozpočet požadavků.
Kdy to řešit
Před stavbou integrace, ne až po chybové hlášce. Návrh, který načítá celý katalog při každém běhu, narazí na limit u prvního většího klienta — a přepisuje se pak celý.
Jak nenarazit
Čtyři věci v pořadí podle účinnosti:
Filtruj podle času poslední změny. Když se změnilo deset produktů, načítej deset produktů. Tohle samo o sobě obvykle vyřeší celý problém.
Používej webhooky místo pravidelného dotazování. Většina dotazů v pravidelném intervalu vrátí „nic se nezměnilo" a stejně se počítá do limitu.
Dávkuj. Rozhraní mají limit položek na požadavek. Načítání po jedné vyčerpá limit řádově dřív.
Čti chybové odpovědi. Když přijde odpověď o překročení limitu, opakování téhož požadavku ho jen prohloubí. Odpověď obvykle nese informaci, kdy je bezpečné to zkusit znovu.
Nejčastější chyby
- Slepé opakování po chybě. Prodlužuje blokaci místo aby ji řešilo.
- Sdílený přístup pro víc integrací. Jedna nešetrná integrace vyčerpá limit a ostatní přestanou fungovat.
- Řešení navýšením limitu místo opravou logiky. Draží varianta téhož problému.
- Testování na malém katalogu. Integrace, která funguje na stovce produktů, nemusí fungovat na deseti tisících.
Shoptet a Upgates
Upgates. Limity jsou navázané na tarif: Bronze 10/hod a 100/den, Silver 15/hod a 300/den, Gold 50/hod a 600/den, Platinum a Exclusive 100/hod a 1500/den. Navýšení jde balíčky po 1000 požadavcích denně, maximálně 60 balíčků (60 000/den), nastavuje se v Doplňky / API – Omezení a ceny. K tomu platí limit 100 položek na PUT/POST (jinak 413) a maximálně 3 souběžné požadavky na skupinu přístupu (jinak 429); víc souběžných jen na tarifu Exclusive. Odpovědi nesou hlavičky X-Rate-Limit-Hour, X-Rate-Limit-Day a zbývající kvóty, u chyby 429 navíc Retry-After. Pět špatných přihlášení za hodinu z jedné IP vede k chybě 403. Ověřené doplňky nejsou rate limitem omezené — to je často levnější cesta než navyšování limitu. (Ověř aktuální stav.)
Časté otázky
Co dělat při chybě 429?
Počkat dobu, kterou udává odpověď, a teprve pak opakovat. Okamžité opakování situaci zhoršuje.
Je lepší navýšit limit, nebo opravit integraci?
Skoro vždy opravit integraci. Filtrování podle času poslední změny a webhooky obvykle sníží počet požadavků o řád.
Proč mi integrace fungovala na testu a v provozu ne?
Protože test běžel na malém katalogu. Limity se projeví až při reálném objemu dat.
Související pojmy
- API – API je rozhraní, přes které spolu programy komunikují přímo, bez člověka a bez souborů. U e-shopu umožňuje číst a měnit data v reálném čase — vytvořit objednávku, upravit sklad, načíst produkty — na rozdíl od feedu, který je jednosměrný snímek.
- REST API – REST API je nejrozšířenější způsob, jak stavět webová rozhraní: každý typ dat má vlastní adresu a operace se vyjadřuje metodou HTTP požadavku. Naprostá většina e-shopových platforem nabízí právě tuhle podobu API.
- Webhook – Webhook je notifikace, kterou systém sám odešle ve chvíli, kdy nastane určitá událost — vznikne objednávka, změní se produkt, aktualizuje se sklad. Nahrazuje pravidelné dotazování: místo aby se integrace ptala „změnilo se něco?", dozví se to, až když se skutečně něco stane.
- API klíč – API klíč je přístupový údaj, kterým se integrace prokazuje při komunikaci s rozhraním. Určuje nejen to, kdo se připojuje, ale i co smí — a proto by měl mít každé napojení vlastní klíč s minimem oprávnění.
- Napojení ERP – Napojení ERP je propojení e-shopu s podnikovým systémem tak, aby si vyměňovaly data automaticky — typicky objednávky z e-shopu do ERP a sklad s cenami z ERP na e-shop. Realizuje se buď hotovým doplňkem, nebo vlastní integrací přes API.
- ERP – ERP je podnikový systém, ve kterém firma vede sklad, objednávky, fakturaci a účetnictví na jednom místě. U e-shopu bývá zdrojem pravdy o skladu a cenách, zatímco e-shop je prodejní kanál — a rozhodnutí, který systém co určuje, je základ jakéhokoli napojení.
Další pojmy ze skupiny Feedy & integrace
- APIAPI je rozhraní, přes které spolu programy komunikují přímo, bez člověka a bez souborů. U e-shopu umožňuje číst a měnit data v reálném čase — vytvořit objednávku, upravit sklad, načíst produkty — na rozdíl od feedu, který je jednosměrný snímek.
- API klíčAPI klíč je přístupový údaj, kterým se integrace prokazuje při komunikaci s rozhraním. Určuje nejen to, kdo se připojuje, ale i co smí — a proto by měl mít každé napojení vlastní klíč s minimem oprávnění.
- Datová migraceDatová migrace je převod obsahu e-shopu z jednoho systému do druhého — produktů, kategorií, zákazníků, objednávek a jejich vzájemných vazeb. Nejtěžší na ní nejsou samotná data, ale vazby mezi nimi a pole, která v cílovém systému nemají protějšek.
- Diagnostika feeduDiagnostika feedu je pravidelná kontrola toho, kolik produktů kanál z feedu skutečně přijal, kolik jich zamítl a proč. Je to jediný způsob, jak zjistit, že část sortimentu tiše vypadla — počet položek ve feedu totiž neříká nic o tom, kolik se jich reálně zobrazuje.
- ERPERP je podnikový systém, ve kterém firma vede sklad, objednávky, fakturaci a účetnictví na jednom místě. U e-shopu bývá zdrojem pravdy o skladu a cenách, zatímco e-shop je prodejní kanál — a rozhodnutí, který systém co určuje, je základ jakéhokoli napojení.
- Export produktůExport produktů je vytažení dat z katalogu do souboru nebo rozhraní pro použití jinde — pro srovnávače, pro účetnictví, pro dodavatele nebo jako záloha před hromadnou úpravou. Na rozdíl od feedu nemusí mít pevnou strukturu danou cizím systémem.