0

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?

Irina_Xena
  • 245
  • 1
  • 11

0 Answers0