import requests import json # Конфигурация API BASE_URL = "http://127.0.0.1:8001" API_KEY = "9efb2df0-03d7-4212-93db-0ae6418667e1" # API-ключ PROMOCODE = "brw0OMOz" # Данные для запроса на валидацию промокода validation_data = { "promocode": PROMOCODE, } # Эндпоинты token_endpoint = f"{BASE_URL}/token" validation_endpoint = f"{BASE_URL}/validationPromo" # Шаг 1: Получение JWT токена print(f"Отправка запроса на получение токена на {token_endpoint}") token_headers = { "X-API-Key": API_KEY, "Content-Type": "application/json" } try: token_response = requests.post(token_endpoint, headers=token_headers) token_response.raise_for_status() token_data = token_response.json() jwt_token = token_data["access_token"] print("JWT токен успешно получен.") except requests.exceptions.RequestException as e: print(f"Произошла ошибка при получении токена: {e}") if hasattr(e, 'response') and e.response is not None: try: print("Тело ответа с ошибкой:", e.response.json()) except json.JSONDecodeError: print("Тело ответа с ошибкой (не JSON):", e.response.text) exit() # Прерываем выполнение, если не удалось получить токен # Шаг 2: Вызов эндпоинта /validationPromo с использованием полученного JWT токена headers_with_jwt = { "Authorization": f"Bearer {jwt_token}", "Content-Type": "application/json" } print(f"Отправка запроса на {validation_endpoint} с данными: {validation_data}") try: validation_response = requests.post(validation_endpoint, headers=headers_with_jwt, data=json.dumps(validation_data)) validation_response.raise_for_status() # Вызовет исключение для ошибок HTTP (4xx или 5xx) print("Статус ответа:", validation_response.status_code) print("Тело ответа:", validation_response.json()) except requests.exceptions.RequestException as e: print(f"Произошла ошибка при вызове API validationPromo: {e}") if hasattr(e, 'response') and e.response is not None: try: print("Тело ответа с ошибкой:", e.response.json()) except json.JSONDecodeError: print("Тело ответа с ошибкой (не JSON):", e.response.text)