Μετάβαση στο περιεχόμενο
AstroWay/api v2.254.12 · el
όλες οι υπηρεσίες λειτουργούν κανονικά

Idempotency

POST /v1/chart HTTP/1.1
X-Api-Key: aw_live_...
Idempotency-Key: 01HXY2A7ZM0ABCDEF
Content-Type: application/json
{ "datetime": "1990-07-14T14:30:00", ... }

Idempotency-Key - μια τυχαία συμβολοσειρά έως 64 χαρακτήρες, μοναδική για κάθε λογική λειτουργία. Συνιστάται - ULID ή UUID v4.

  • Κατά τη διάρκεια των 24 ωρών μετά το πρώτο αίτημα με αυτό το κλειδί, τα επαναλαμβανόμενα αιτήματα με το ίδιο κλειδί επιστρέφουν την ίδια απάντηση χωρίς επαναληπτικό υπολογισμό και χωρίς χρέωση πιστώσεων.
  • Αν το σώμα του αιτήματος διαφέρει από το πρωτότυπο: επιστρέφεται 409 Conflict με κωδικό idempotency_key_reuse.
  • Μετά από 24 ώρες το κλειδί ξεχαστεί, ένα νέο αίτημα με το ίδιο κλειδί θα είναι κανονικό.

  • Σε webhook handlers, όπου το retry έρχεται από εξωτερικό σύστημα (π.χ. payment provider ή CRM στέλνει ένα event που το parse και κάνεις υπολογισμό)
  • Σε background jobs, όπου το retry είναι η τυπική συμπεριφορά σε περίπτωση σφαλμάτων
  • Σε CI/CD pipelines, όπου ένα test μπορεί να ξανατρέξει

Για κανονικές αλληλεπιδράσεις “ο χρήστης πάτησε κουμπί → εμφανίστηκε χάρτης”, η ιδεμοποτικότητα δεν χρειάζεται - ο χρήστης θα δει το αποτέλεσμα και πάλι, συνήθως δεν υπάρχουν επαναλαμβανόμενα κλικ.

  • Μην βάζεις κλειδί για να εξοικονομήσεις πιστώσεις σε ίδια αιτήματα: για αυτό υπάρχει το X-Cache (δωρεάν, 5 λεπτά)
  • Μην δημιουργείς κλειδί από hash(body): τότε θα χάσεις την προεπιλεγμένη συμπεριφορά του Idempotency-Key (επανάληψη 409 σε διαφορετικά body)
Χρήσιμο;
Προτείνετε διόρθωση

Τελευταία ενημέρωση: