2025-01-25 16:45:18 +02:00
|
|
|
|
from fastapi import FastAPI, Request
|
|
|
|
|
from fastapi.responses import JSONResponse
|
2025-01-22 20:10:15 +02:00
|
|
|
|
import logging
|
2025-01-25 16:45:18 +02:00
|
|
|
|
from routers import profile, jobs
|
2025-01-22 20:10:15 +02:00
|
|
|
|
|
2025-01-22 21:54:19 +02:00
|
|
|
|
|
2025-01-25 16:45:18 +02:00
|
|
|
|
# Инициализация приложения
|
2025-01-22 20:10:15 +02:00
|
|
|
|
|
2025-01-22 22:53:34 +02:00
|
|
|
|
app = FastAPI(
|
|
|
|
|
title="linkedin API",
|
|
|
|
|
description="API с linkedin получаем данные по URL",
|
2025-01-25 16:45:18 +02:00
|
|
|
|
version="1.0.0")
|
2025-01-22 20:10:15 +02:00
|
|
|
|
|
|
|
|
|
|
2025-01-25 16:45:18 +02:00
|
|
|
|
# Подключение роутеров
|
|
|
|
|
app.include_router(profile.router, tags=["Profile"])
|
|
|
|
|
app.include_router(jobs.router, tags=["Jobs"])
|
2025-01-22 20:10:15 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-25 16:45:18 +02:00
|
|
|
|
# Проверка состояния сервера
|
|
|
|
|
@app.get("/", tags=["Check"])
|
|
|
|
|
async def check():
|
|
|
|
|
return {"status": "ok"}
|
2025-01-22 20:10:15 +02:00
|
|
|
|
|
2025-01-25 16:45:18 +02:00
|
|
|
|
# Глобальный middleware для обработки необработанных исключений
|
|
|
|
|
@app.middleware("http")
|
|
|
|
|
async def catch_exceptions_middleware(request: Request, call_next):
|
|
|
|
|
try:
|
|
|
|
|
return await call_next(request)
|
|
|
|
|
except Exception as e:
|
|
|
|
|
logging.error(f"Unhandled exception: {str(e)}")
|
|
|
|
|
return JSONResponse(content={"error": "Internal Server Error"}, status_code=500)
|