Помогите понять, пожалуйста. Есть задание. Я его понял, но не понял одну деталь. Что значит "эмулировать запрос", это, то-есть найти сервер который принимает нужный указанный запрос (типа работать с api dadata) или это нужно не по настоящему создать сервер который получает запрос, но по факту ничего не отдаст и сервера никакого не будет, имитацию этакую сделать?
Часть задания.
Сделать сервис, который принимает запрос с указанием кадастрового номера, широты и долготы, эмулирует отправку запроса на внешний сервер, который может обрабатывать запрос до 60 секунд. Затем должен отдавать результат запроса. Считается, что внешний сервер может ответить `true` или `false`.
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
data = serializer.validated_data
cadastre_number = data['cadastre_number']
latitude = data['latitude']
longitude = data['longitude']
# эмулируем отправку запроса на внешний сервер
external_url = f'https://emulate.ru/api?cadastre_number={cadastre_number}&latitude={latitude}&longitude={longitude}'
start_time = time.time()
response = requests.get(external_url)
end_time = time.time()
# А тут проверяем, получен ли ответ в течение 60 секунд
if end_time - start_time > 60:
return Response({'error': 'Timeout error'}, status=status.HTTP_408_REQUEST_TIMEOUT)
# проверка, действителен ли ответ
if response.status_code != 200 or response.text not in ['true', 'false']:
return Response({'error': 'Invalid response'}, status=status.HTTP_400_BAD_REQUEST)
# сохраняем запрос и ответ в базу данных
result = response.text == 'true'
request = Request.objects.create(cadastre_number=cadastre_number, latitude=latitude, longitude=longitude, result=result)
headers = self.get_success_headers(serializer.data)
return Response(RequestSerializer(request).data, status=status.HTTP_201_CREATED, headers=headers)
Извиняюсь, я новичок и действительно не понимаю.