Отправка 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)