Idempotency Keys
import json
import requests
from requests.adapters import HTTPAdapter
from urllib3.util.retry import Retry
from logging import getLogger
logger = getLogger("xcover")
url = "https://api.xcover.com/x/partners/YOUR_PARTNER_ID/instant_booking/"
payload = json.dumps({
# ... generated payload
})
headers = {
# ... other required headers
'x-idempotency-key': 'db55f986-c30c-4883-ac4f-0d2cfada6d3f'
}
retry_strategy = Retry(total=3, status_forcelist=[423, 429, 502, 503, 504], backoff_factor=5)
with requests.Session() as session:
session.mount(url, HTTPAdapter(max_retries=retry_strategy))
response = session.post(url, headers=headers, data=payload)
if response.status_code in (200, 409):
if response.status_code == 409:
# this request is a duplicate, let's log it as a warning
logger.warning("duplicated xcover request")
# successfull response
print(response.json())
else:
# error response
print(response.status_code)Last updated
Was this helpful?

