Přejít na hlavní obsah
Na této stránce

Engine API

Pokud jen řežeš desky, tuhle stránku nepotřebuješ. Optimalizátor v CutOptim už umí všechno, co je tu popsané. Engine API je stejné jádro, jen bez obrazovky — pro případ, kdy plány řezání potřebuje jiný software, aniž by aplikaci někdo otevíral.

Všechno, co CutOptim v prohlížeči dělá, začíná jedním výpočtem: mám tyto díly a tento materiál — jak je nejlépe rozřezat? Engine API zpřístupňuje přesně tento výpočet přes internet, takže se může zeptat i jiný program a odpověď dostat zpátky — bez prohlížeče, bez klikání, bez přihlášeného člověka.

A to je celá myšlenka. Není to nový optimalizátor, není to lepší optimalizátor a není to větší tarif. Je to stejné jádro, jen dostupné softwaru místo člověku.


Je to pro mě?

Pro naprostou většinu uživatelů CutOptim je poctivá odpověď ne. Pokud tvůj pracovní den vypadá tak, že otevřeš CutOptim, zadáš díly a materiál a plán vytiskneš nebo vyexportuješ, produktem je aplikace a tato stránka se tě netýká.

Engine API míří na jedinou situaci: plány řezání se mají objevovat v softwaru, který už používáš, aniž by kdokoli chodil do CutOptim. V praxi to znamená jednoho ze dvou lidí:

  • Už provozuješ software, do kterého plán řezání patří. ERP, ve kterém máš zakázky, kalkulační nástroj, který zakázky cení, nebo vlastní software stroje. Místo aby operátor přepisoval stejný seznam dílů znovu do CutOptim, zeptá se ten program jádra přímo a plán zobrazí tam, kde se práce už odehrává.
  • Necháváš si software postavit. Vlastním vývojářem, místní softwarovou firmou nebo dodavatelem svého stroje. Engine API je to, na co se připojí.

Používat Engine API znamená, že proti němu někdo píše software. Není tu žádné rozhraní, žádná tabulka k vyplnění a není co instalovat — je to služba pro programy a práci odvede ten, kdo takový program píše. Pokud na tvé straně nikdo kód nepíše, chceš aplikaci.

Pokud si nejsi jistý, na které straně té hranice stojíš, dobrý test je tento: mohl by plán vzniknout, aniž by si o něj někdo řekl? Pokud ano, API má smysl. Pokud o vytvoření plánu řezání vždycky rozhoduje člověk, správným nástrojem už je aplikace.


Co umí

Tvůj software pošle jako JSON tytéž dvě věci, které bys zadal do aplikace — seznam dílů a seznam materiálu. Jádro pošle zpátky celou odpověď:

  • Celé rozvržení. Každý díl umístěný na konkrétní desce nebo tyči, včetně informace, jestli byl otočený.
  • Plán řezání. Ne jen obrázek obdélníků: skutečná gilotinová sekvence řezů v pořadí, takže se plán dá provést na formátovací pile.
  • Čísla. Kolik desek nebo tyčí zakázka spotřebuje, využití materiálu v procentech, kolik řezů je potřeba a celkovou cenu použitého materiálu. U desek dostaneš navíc dvě poctivé míry počtu řezů — řezy, které slučují řezy se stejným nastavením dorazu, a průjezdy pily, které počítají každý jednotlivý průjezd — a k tomu celkovou délku řezu.
  • Volitelně i výkres. Požádej o include: ["svg","csv","dxf"] a odpověď ponese rozvržení i jako hotový soubor — samostatný 2D výkres SVG, DXF ve formátu R12/AC1009 nebo seznam řezů CSV — přímo v JSON, bez úložiště a bez druhého volání. (SVG je jen 2D.)
  • Vaše vlastní identifikátory, vrácené zpět. Připoj objekt meta — číslo artiklu, řádek zakázky, referenci zákazníka — k jakémukoli dílu nebo řádku materiálu a vrátí se beze změny u každého umístěného kusu i u každé desky nebo tyče, takže plán sedí s tvým vlastním systémem. Právě tohle je pole, po kterém sáhneš, když chceš poslat všechny své desky, každou označit vlastním kódem a zpětně si přečíst, kterou desku optimalizátor zvolil — kód vlož do stock[].meta a vrátí se ti v sheets[].meta. Na rozmístění nemá nikdy vliv. K identifikaci nepoužívej pole material: material je tvrdé rozdělení (díl se řeže jen ze zásoby stejného materiálu), takže označit materiálem každý řádek zásoby a díly nechat neoznačené znamená, že se všechny díly vrátí jako unmatched a výsledek bude prázdný.

Optimalizační režimy jsou čtyři a všechny odpovídají aplikaci — jeden pro 2D desky, jeden pro 1D lineární materiál (tyče, profily, trubky), jeden pro dřevo, jehož materiál má průřez, a nesting podle skutečného tvaru (POST /v1/optimize/nest), který skládá libovolné polygony pro řezání laserem, plazmou a vodním paprskem (režim Nesting aplikace). Každý optimalizační endpoint má navíc bezplatný endpoint pro validaci, který požadavek zkontroluje bez výpočtu (viz níže).

Endpointy

Základní URL je https://api.cutoptim.com. Optimalizační endpointy a endpoint spotřeby nesou klíč v hlavičce Authorization: Bearer <key>; validační a stavový endpoint žádný klíč nepotřebují.

Endpoint Co dělá
POST /v1/optimize/2d optimalizace 2D desek
POST /v1/optimize/1d optimalizace 1D / lineárního materiálu — tyče, profily, trubky
POST /v1/optimize/wood Optimalizace dřeva — 1D s přiřazením průřezu
POST /v1/optimize/nest Nesting podle skutečného tvaru — nepravidelné polygony pro laser, plazmu a vodní paprsek
POST /v1/validate/2d · /1d · /wood · /nest Validace požadavku bez výpočtu — zdarma, bez klíče, bez kvóty
GET /v1/jobs/{id} Dotázání na asynchronní úlohu jádra max — jen vaše vlastní úlohy, bez kvóty
POST /v1/import/nest Načte obrysy dílů ze souboru SVG nebo DXF — vyžaduje klíč, nespotřebovává kvótu
GET /v1/usage spotřeba a kvóta ÚČTU v aktuálním měsíci (všechny klíče sdílejí jednu)
GET /v1/health kontrola dostupnosti — bez klíče

Většina volání se rovnou zodpoví hotovým výsledkem. Jedinou výjimkou je asynchronní jádro max (viz Tři jádra níže): odeslání úlohy max vrátí id úlohy a vy se dotazujete na GET /v1/jobs/{id}, dokud není plán připravený.

Validační endpointy přijímají stejné tělo jako odpovídající optimalizační endpoint a zkontrolují ho, aniž by spustily výpočet: chybně sestavený požadavek se vrátí jako 400 s uvedením přesně toho špatného pole a správně sestavený vrátí valid: true plus upozornění na proveditelnost (například díl, který se nevejde do žádného materiálu). Nic nestojí a nepotřebují klíč, takže si můžeš svá těla požadavků ověřovat už při stavbě integrace — ještě než vůbec máš klíč — a potvrdit si, že požadavek nebude odmítnut, aniž bys utratil jedno ze svých měsíčních volání.

Proč má dřevo vlastní endpoint

Lineární materiál zná jediný rozměr, délku, takže každá tyč může posloužit každému dílu. U dřeva to neplatí: díl 50×150 z tyče 50×100 nevyřežete, ať zbývá jakákoli délka. Endpoint pro dřevo proto u každého dílu i u každé položky materiálu přebírá obě strany průřezu, rozdělí zakázku podle průřezu, přiřadí každému průřezu jeho vlastní materiál a průřezy vrátí odděleně — každý s vlastními tyčemi a vlastními součty, vedle čísel za celou zakázku.

Dvě věci, které je dobré znát před integrací:

  • Obě strany průřezu lze poslat v libovolném pořadí. 50×100 a 100×50 je tentýž otočený hranol a patří do jednoho průřezu. Rozdíl v tom, jak byla vaše data zrovna zadána, tedy nemůže způsobit, že materiál zmizí.

  • „Žádný materiál tohoto průřezu“ a „nevešlo se“ se hlásí odděleně. První je chybějící materiál, druhé problém kapacity a každé se řeší jinak — smíchané v jednom seznamu pošlou vašeho uživatele hledat na špatné místo.

Totéž byste mohli přiblížit několika vlastními voláními 1d a díly si seskupit sami. Stálo by to jeden požadavek z kvóty na průřez místo jednoho na zakázku, přesunulo by to přiřazování materiálu do vašeho kódu a vzniklý součet za zakázku byste museli složit sami — a nemusel by se shodovat s tím, co pro stejnou zakázku ukazuje aplikace CutOptim.


Díly z CAD souboru

Nesting endpoint nepřijímá jen souřadnice. Díl může místo nich nést source — dokument SVG nebo DXF — a server z něj načte obrys i otvory v něm. Je to tentýž čteč, jaký používá aplikace, když na její režim Nesting přetáhnete výkres, takže knihovnu dílů, která už existuje jako CAD soubory, není nutné nejdřív přepsat na seznamy souřadnic.

Soubor nahrazuje pouze geometrii. Množství, materiál, povolená otočení i vaše vlastní metadata zůstávají běžnými poli řádku dílu, přesně jako když posíláte souřadnice. Jeden soubor popisuje jeden díl; když jeden výkres obsahuje několik samostatných součástí, POST /v1/import/nest jej nejprve rozdělí na hotové řádky — a toto volání vyžaduje klíč, ale nespotřebuje požadavek z vaší měsíční kvóty.

Nic se neukládá. Soubor existuje pouze jako samotný požadavek: čte se v paměti a v okamžiku, kdy je zapsána odpověď, mizí. Nezůstává kopie na disku ani v databázi, nic nekončí v logu a poté není co mazat. S jednotkami postupujeme stejně — DXF může deklarovat milimetry nebo palce a my hlásíme, co uvedl, ale souřadnice nikdy nepřepočítáváme, protože žádná hodnota v tomto API nenese jednotku.

Pokaždé stejná odpověď

Jádro je deterministické: stejný vstup vrací vždy stejný výstup. V algoritmu není žádná náhoda ani hodiny.

Zní to akademicky, ale právě to je praktický důvod, proč na tom stavět. Znamená to, že se výsledky dají cachovat — pokud jsi se na přesně tuto zakázku už ptal, můžeš odpověď bezpečně použít znovu místo dalšího dotazu. A také to znamená, že se propojení dá testovat: plán se dá porovnat se známým správným výsledkem a rozdíl je pak skutečný rozdíl, ne šum. Software, který zákazníkovi v pondělí nacení zakázku, ji v pátek nacení stejně.


Tři jádra

API nabízí na výběr z jader. První dvě běží synchronně, třetí asynchronně. Rozdíl není v kvalitě — je to kompromis mezi rychlostí, tím, jestli se výsledek dá rozřezat na formátovací pile, a tím, jak blízko se dostane k teoretickému minimu.

  • heuristic je výchozí a je to totéž jádro, které používá aplikace. Vytváří gilotinová rozvržení: nejvyšší využití materiálu, každé rozvržení je řezatelné na formátovací pile a vždy je k němu plný plán řezání. Synchronní.
  • balanced si zapneš sám. Používá místo toho volný nesting, který je na hodně velkých zakázkách dramaticky rychlejší — naměřeno asi 25× rychleji na zakázce s 2 000 díly — za cenu o něco nižšího využití materiálu. Důležitá past: jeho rozvržení často nelze rozřezat od hrany k hraně, takže u nich nevrací žádný plán řezání. Synchronní.
  • max si zapneš sám a je jen 2D. Je to serverové prohledávání stromu, které dosahuje prokázaného optima u mnohem více zakázek než výchozí jádro, a jeho rozvržení jsou stále řezatelná na gilotině. Cenou je čas: výpočet max trvá sekundy až minutu, takže neodpovídá v samotné odpovědi. Místo toho POST /v1/optimize/2d s engine: "max" vrátí id úlohy a vy se dotazujete na GET /v1/jobs/{id}, dokud není hotová. Stále je deterministické. Sáhni po něm, když se u velké, hodnotné zakázky vyplatí počkat na posledních pár desek. Modeluje jediný formát materiálu v plné velikosti desky a v neomezeném množství, takže požadavek, který navíc nese druhý formát materiálu, trim po stranách, omezené zásoby (respectStock), materiály nebo skupiny vláken, je předem odmítnut kódem 400, který přesně pojmenuje, co jádro neumí — ještě než se volání účtuje. Takové zakázky posílejte do heuristic, které je zvládne všechny.

balanced neznamená „lepší výsledky”. Je rychlejší a využití materiálu je o něco nižší, a když jeho rozvržení není gilotinové, není co podat operátorovi pily. Vyber si ho jen tehdy, když je u hodně velké zakázky rychlost důležitější než plán připravený k pile. Pokud si nejsi jistý, zůstaň u výchozího.


Limity

Každý požadavek má své hranice, takže zakázka, která se vymkne, jasně selže a nezůstane viset:

Limit Hodnota
Dílů na požadavek 2 000
Řádků materiálu na požadavek 50
Velikost těla požadavku 1 MB
Velikost těla požadavku — nest cesty, které mohou nést výkres 10 MB
Aktivních klíčů na účet 10
Volání validate bez klíče na adresu 120 / minutu
Úlohy max ve stavu queued/running na účet 5

Jak získat přístup

Začni na stránce Engine API. Engine API se účtuje odděleně od tarifů aplikace a nezapne ho žádná změna tarifu.

  1. Předplať si ho, nebo napiš. Předplatné na stránce Engine API je nejrychlejší cesta — běží se zkušebním obdobím a přístup dorazí na účet sám. Pokud chceš nejdřív popsat svou integraci nebo potřebuješ objem nad rámec standardního tarifu, napiš nám a uveď, co chceš propojit a kolik plánů řezu měsíčně to zhruba bude potřebovat.
  2. Přístup ti přidáme na účet. Nic jiného se na tvém účtu nemění.
  3. Vytvoř si klíč. Jakmile má tvůj účet přístup k API, objeví se na tvé nástěnce karta API klíče. Klíče si tam sám vytváříš, pojmenováváš a mažeš.
  4. Zkopíruj si klíč hned. Celý klíč se zobrazí právě jednou, v okamžiku, kdy ho vytvoříš.

Klíč se zobrazí jen jednou. CutOptim z něj ukládá pouze sha256 hash, nikdy samotný klíč — takže ho už nikdo nepřečte zpátky, ani ty, ani my. Zkopíruj si ho při vytvoření rovnou do konfigurace svého softwaru. Když klíč ztratíš, smaž ho a vytvoř si nový; a pokud se klíč někam dostane, smaž ho a volání okamžitě přestanou fungovat.

Ke klíči se chovej jako k heslu: patří do konfigurace tvého softwaru, ne do e-mailu, do tabulky nebo na snímek obrazovky.

Co dělá karta API klíče na nástěnce

Tři ovládací prvky — a stojí za to přesně říct, co který mění, hlavně ten poslední, u kterého mnozí čekají dopad na placení. Nemá ho.

  • Vytvořit klíč. Vygeneruje nový klíč a jednou ho tam zobrazí. Název (ERP integrace, staging) slouží jen k tomu, abyste klíče později rozeznali. Až 10 aktivních klíčů na účet.
  • Ukazatel spotřeby. Dvě čísla: celková spotřeba účtu za kalendářní měsíc vůči kvótě a u každého klíče, kolik spotřeboval on. Číslo u klíče odpovídá na to, která integrace kvótu spotřebovává — není to samostatný rozpočet.
  • Odvolat. Od dalšího volání ten jeden klíč vyřadí. Řádek zůstává vidět, aby se neztratila historie.

Odvolání klíče nemá s předplatným nic společného. Nic neruší, nic nevrací a neuvolňuje kvótu — tarif běží dál a kvóta zůstává, jen už ten konkrétní klíč nemáte. Odvolávejte, když klíč unikl nebo se integrace vyřazuje. Chcete-li přestat platit, zrušte místo toho předplatné: přístup pak trvá do konce už zaplaceného období a poté přestanou fungovat i existující klíče.

Jedna kvóta pro účet, ne jedna na klíč

Každý aktivní klíč vašeho účtu čerpá ze stejné měsíční kvóty. Druhý klíč nevytvoří druhou kvótu — klíče jsou od toho, abyste oddělili staging od produkce, dali každé integraci vlastní přihlašovací údaj a jeden odvolali, aniž byste rušili ostatní.

GET /v1/usage hlásí stav účtu (used, limit, remaining), takže odpovídá na otázku, kterou skutečně máte — kolik zbývá, než volání začnou selhávat — bez ohledu na to, kterým klíčem jste se ptali. Když kvóta dojde, vrací 402 každý klíč, ne jen ten, který ji spotřeboval.


Cena a kvóta

Engine API se účtuje odděleně od tarifů aplikace a má pevný počet požadavků za měsíc. Aktuální cenu, měsíční kvótu požadavků i délku zkušebního období najdeš na stránce Engine API — ta si je čte z naší konfigurace ceníku, takže tam je vždy platné číslo.

Technické podrobnosti — přesnou podobu požadavku a odpovědi, všechny volby, všechny chybové kódy i to, jak funguje verzování — najdeš v referenci API.


Co se tím nemění

Stojí za to to říct naplno, protože Engine API se dá snadno špatně přečíst jako změna produktu:

  • Optimalizátor v aplikaci zůstává beze změny. Dál běží v tvém prohlížeči, přesně jako dřív.
  • Tarify Zdarma, Pro a Dílna se nemění. Optimalizátor v aplikaci v nich zůstává zahrnutý se stejnými limity jako dřív. Nic se za API nepřesunulo.
  • Nic, co v aplikaci uděláš, nespotřebovává požadavky API. Měsíční kvótu API ubírají jen volání, která pošle tvůj vlastní software.

Engine API je doplněk pro ty, kdo CutOptim zapojují do jiného softwaru. Pokud to nejsi ty, nezměnilo se nic.

FAQ

Potřebuji Engine API?
Téměř určitě ne. Pokud řežeš desky nebo tyče tak, že si otevřeš CutOptim v prohlížeči, aplikace už umí všechno, co umí API — API je stejné jádro, jen bez obrazovky. Existuje kvůli jediné situaci: jiný software potřebuje plány řezání, aniž by aplikaci někdo otevíral. Pokud na tvé straně nikdo nepíše kód proti CutOptim, můžeš na něj klidně zapomenout.
Pro koho je Engine API vlastně určené?
Pro dva typy zákazníka: pro toho, kdo už provozuje software, ve kterém by plán řezání měl žít — ERP se zakázkami, kalkulační nástroj, který zakázky cení, nebo vlastní software stroje — a pro toho, komu takový software někdo staví, ať už vlastní vývojář, nebo agentura. V obou případech práci odvede ten, kdo ten software píše, ne ty v prostředí CutOptim.
Jak získám přístup k Engine API?
Předplatit si ho můžeš přímo na stránce Engine API — běží se zkušebním obdobím a přístup pak dorazí na účet sám. To je nejrychlejší cesta. Pokud chceš nejdřív popsat integraci nebo potřebuješ objem nad rámec standardního tarifu, napiš nám. Tak či tak se pak v tvém dashboardu objeví karta API klíče a klíče si tam vytváříš sám. Engine API se účtuje odděleně od tarifů aplikace a nezapne ho žádná změna tarifu.
Zvládne Engine API i dřevo, nebo jen desky a tyče?
Všechny tři režimy, které má aplikace, včetně dřeva. Endpoint pro dřevo zná průřez: díly i materiál nesou obě strany průřezu, takže díl 50×150 se řeže výhradně z materiálu 50×150. Zakázka se dělí podle průřezu a každý průřez se vrací s vlastními tyčemi a součty; poptávka, pro jejíž průřez není žádný materiál, se hlásí odděleně od dílů, které materiál měly a nevešly se.
Změní Engine API můj tarif Zdarma, Pro nebo Dílna?
Ne. Engine API je samostatný doplněk a na běžných tarifech nemění nic. Optimalizátor v aplikaci zůstává beze změny, dál běží v tvém prohlížeči a dál je součástí tarifů Zdarma, Pro i Dílna přesně jako dřív. Nic, co v aplikaci uděláš, nezačne spotřebovávat požadavky API.
Existuje pro Engine API SDK nebo klientská knihovna?
Ne. Žádné SDK, žádná klientská knihovna, žádný plugin — API je obyčejné HTTPS s JSON v požadavku i v odpovědi, což umí zavolat každý programovací jazyk bez jakéhokoli balíčku od CutOptim. Nejsou tu ani webhooky. Většina volání se rovnou zodpoví hotovým výsledkem; jedinou výjimkou je asynchronní jádro max (jen 2D), kde POST /v1/optimize/2d s engine "max" vrátí id úlohy, na kterou se dotazuješ přes GET /v1/jobs/{id}, dokud není plán připravený.
Je jádro balanced lepší než výchozí?
Ne — je to kompromis, ne vylepšení. Výchozí jádro heuristic dává nejvyšší využití materiálu a každé rozvržení, které vytvoří, se dá rozřezat na formátovací pile, takže vždy vrátí plán řezání. Jádro balanced je na hodně velkých zakázkách výrazně rychlejší, ale využití materiálu je o něco nižší a jeho rozvržení často nelze rozřezat od hrany k hraně, takže u nich nevrací žádný plán řezání. Sáhni po něm jen tehdy, když je u velké zakázky rychlost důležitější než plán připravený k pile.
Proč se mi API klíč zobrazí jen jednou?
Protože CutOptim samotný klíč nikdy neukládá — uchovává jen jeho sha256 hash. Nikdo, ani my, tedy nemůže tvůj klíč přečíst zpátky z databáze, a proto ho lze zobrazit jen v okamžiku, kdy vznikne. Zkopíruj si ho hned do konfigurace svého softwaru; když ho ztratíš, klíč smaž a vytvoř si nový.
Co se stane, když odvolám API klíč — dostanu peníze zpět?
Ne, a nic to ani neruší. Odvolání vyřadí ten jeden klíč od dalšího volání; předplatné běží dál a měsíční kvóta zůstává. Odvolejte klíč, když unikl nebo se integrace vyřazuje, a vytvořte náhradní. Chcete-li přestat platit, zrušte místo toho předplatné — přístup pak trvá do konce už zaplaceného období a poté přestanou fungovat i existující klíče.
Získám víc požadavků, když si vytvořím víc API klíčů?
Ne. Měsíční kvóta patří účtu a každý aktivní klíč čerpá ze stejné kvóty — druhý klíč nepřidá druhou. Klíče jsou od toho, abyste oddělili staging od produkce, dali každé integraci vlastní přihlašovací údaj a jeden odvolali, aniž byste rušili ostatní. Když kvóta dojde, vrací 402 každý klíč, ne jen ten, který ji spotřeboval. GET /v1/usage hlásí stav účtu, ať se ptáte kterýmkoli klíčem.
Umí Engine API vrátit i výkres, ne jen souřadnice?
Ano. Přidej k optimalizačnímu požadavku include: ["svg","csv","dxf"] a odpověď ponese rozvržení jako hotový soubor, přímo v JSON: samostatný 2D výkres SVG, DXF ve formátu R12/AC1009 na vrstvách STOCK/PARTS/LABELS nebo seznam řezů v CSV. Žádné úložiště a žádné druhé volání. SVG je jen 2D; požadavek 1D nebo wood místo něj vrátí upozornění. K jakémukoli dílu nebo řádku materiálu můžeš také připojit objekt meta (číslo artiklu z tvého ERP, id řádku zakázky nebo referenci zákazníka) a vrátí se na výstupu doslovně, takže plán sedí s tvým systémem. Právě meta je i pole, kterým si označíš jednotlivé desky — kód vlož do stock[].meta a vrátí se ti v sheets[].meta, takže poznáš, kterou desku optimalizátor zvolil, a na rozmístění to nemá vliv. K identifikaci nepoužívej pole material: to je tvrdé rozdělení (díl se řeže jen ze zásoby stejného materiálu), takže díly ponechané bez značky materiálu se vrátí jako unmatched a výsledek bude prázdný.
Můžu zkontrolovat požadavek, aniž bych utratil jedno ze svých měsíčních volání?
Ano. POST /v1/validate/2d, /v1/validate/1d, /v1/validate/wood nebo /v1/validate/nest přijímá stejné tělo jako odpovídající optimalizační endpoint a zkontroluje ho bez výpočtu — zdarma, bez API klíče a bez spotřebované kvóty. Chybně sestavený požadavek se vrátí jako 400 s uvedením přesně toho špatného pole a správně sestavený vrátí valid: true plus upozornění na proveditelnost (například díl, který se nevejde do žádného materiálu). Použij ho k ověření svých těl požadavků při stavbě integrace, ještě než vůbec máš klíč.
Co se stane se souborem SVG nebo DXF, který pošlu do API?
Nic z něj nezůstane. Soubor putuje jako tělo požadavku, čte se v paměti kvůli obrysu dílu a mizí, jakmile je zapsána odpověď — žádná kopie na disku, žádná kopie v databázi, žádný záznam v logu, který by jej obsahoval, takže poté není co mazat a není na jakou dobu uchovávání se ptát. Je to táž bezstavovost, jakou drží zbytek API: ani vaše nářezové plány neuchováváme déle než požadavek, který je vytvořil.

Aktualizováno: 2. září 2026