Отправка JSON через REST-фреймворк Django

Я начинаю работать с фреймворком Django rest и столкнулся с проблемой, которую до сих пор не могу решить.

Вот в чем проблема:

Я хочу создать сайт магазина техники. Используя API, который предоставляет компания-производитель, я буду загружать продукты на свой сайт. Компания-производитель использует XML, и результатом работы API является XML. Используя python, я преобразовал XML-вывод из API в JSON.

Вот код для этого:

import requests
import xmltodict
import json

url = 'https://www.parterURLProductsInStock.asmx'
headers = {'content-type': 'text/xml'}
raw_data = """<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <GetCTProducts xmlns="http://www.partnerURL.com/B2B">
      <username>username</username>
      <password>psw</password>
    </GetCTProducts>
  </soap:Body>
</soap:Envelope>"""

x = requests.post(url, data=raw_data, headers=headers)
js = xmltodict.parse(x.text)
print(json.dumps(js))

Для своего сайта я хочу использовать Django и React. Поэтому для получения товаров во фронтенде мне нужен API, и в большинстве случаев используется Django REST Framework.

Я знаю, что с помощью Django REST Framework мы можем преобразовывать классы из modules.py в JSON и отправлять его на фронт с помощью сериализаторов. Но как я могу отправить данные (JSON), которые хранятся в моей переменной js?

Если кто-нибудь может мне помочь, это было бы очень кстати!

Вы можете использовать Response класс из rest_framework для возврата json следующим образом :

from rest_framework.response import Response
from rest_framework.decorators import api_view

@api_view()  # Only GET method
def get_js(request):
    # ...
    x = requests.post(url, data=raw_data, headers=headers)
    js = xmltodict.parse(x.text)
    
    return Response(js)
Вернуться на верх