I'm new in Django and I know how to use model serializers, but I can't find information about how to validate data from API. For example, I have a method that gets a data from another web service.
def get_sales(self):
url = "https://statistics-api.com/api/v1/sales" # I can't add real url, sorry
body = {"dateFrom": f"{datetime.datetime.now().date() - datetime.timedelta(days=30)}"}
try:
request = requests.get(url, params=body)
if request.status_code == 200:
return True, request.json()
return False, request.json()["errors"]
except json.JSONDecodeError as e:
return False, f"Response is not in JSON format"
The response example. Smth like this:
(True, [{'date': '2023-03-03T13:02:22', 'barcode': '46134548641', 'totalPrice': 500, 'discountPercent': 52}]
So, I need to get the data from response in my views.py:
sales = api.get_sales()
result, sales_info = sales
if result:
try:
prices_count = []
for element in sales_info:
price = element.get("totalPrice", "")
prices_count.append(price)
transactions_total = sum(prices_count)
I know this is not the best practice, because of KeyError. How can I validate data via serializer?