Middle
Podľa akého štandardu ste opísali REST API? Ako urobiť POST idempotentným?
sobes.tech AI
Odpoveď od AI
Často sa na opis REST API používa štandard OpenAPI (predtým známy ako Swagger). Umožňuje formalizovať popis API vo formáte YAML alebo JSON, čo uľahčuje generovanie dokumentácie, klientskych SDK a testov.
Aby sa POST stal idempotentným, je možné použiť niekoľko prístupov:
- Zaviesť unikátne identifikátor požiadavky (napríklad
Idempotency-Key) do hlavičiek. Server, ktorý obdrží opakovanú požiadavku s rovnakým kľúčom, nevytvorí duplikát, ale vráti výsledok prvej požiadavky. - Použiť namiesto POST metódu PUT, pretože PUT je podľa štandardu idempotentný (aktualizuje zdroj na známej URI).
Príklad s Idempotency-Key:
POST /orders HTTP/1.1
Idempotency-Key: 123e4567-e89b-12d3-a456-426614174000
Content-Type: application/json
{ "product_id": 42, "quantity": 1 }
Ak server už predtým prijal takúto požiadavku s týmto kľúčom, vráti rovnakú odpoveď bez vytvorenia novej objednávky.