from fastapi import FastAPI, HTTPException, Body, Request, File, UploadFile, BackgroundTasks, Form, Depends, Header from pydantic import BaseModel import logging from fastapi.responses import JSONResponse from fastapi.templating import Jinja2Templates from typing import Dict, Any # Настройка логгера logger = logging.getLogger(__name__) logger.setLevel(logging.INFO) # Создание обработчика для вывода в консоль console_handler = logging.StreamHandler() console_handler.setLevel(logging.INFO) formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s') console_handler.setFormatter(formatter) logger.addHandler(console_handler) app = FastAPI() # Подключаем шаблоны Jinja2 templates = Jinja2Templates(directory="templates") # Главная страница с текстом "server is running" @app.get("/") async def read_root(request: Request): return templates.TemplateResponse("index.html", {"request": request, "text": "server is running"}) @app.post("/echo") async def echo_text(json_request: Dict[str, Any], request: Request): # Декодируем заголовок Authorization, если он в виде байтов authorization = request.headers.get("Authorization", "") if authorization.startswith("Bearer "): token = authorization[7:] # Убираем "Bearer " else: token = None logger.info(f"Request headers: {request.headers}") logger.info(f"Token: {token}") # Выводим токен как строку logger.info(f"Request body: {json_request}") return {"id": 12} @app.post("/auth") def echo_text(json_request: Dict[str, Any]): logger.info(json_request) if (json_request['accessToken'] == 'your-random-generated-salt'): return {"session_token": '12'} return {"message": "unathorized"}