Sobes.tech
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.