| Server IP : 185.11.201.71 / Your IP : 192.168.7.18 Web Server : Apache/2.4.29 (Ubuntu) System : Linux tech-virtual-machine 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64 User : tech ( 1000) PHP Version : 7.4.28 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /comunica/app_ojos/app/ |
Upload File : |
from fastapi import FastAPI, Request
from fastapi.responses import RedirectResponse
from logging.handlers import RotatingFileHandler
from fastapi.middleware.cors import CORSMiddleware
from fastapi.staticfiles import StaticFiles
import logging
import uvicorn
import sys
import os
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
from routes import items, eyes, processes, login, david
from config import PROJECT_NAME, API_VERSION, HOST, PORT, LOG
# Configuración básica del logging
logging.basicConfig(
level=logging.INFO, # Nivel de logging
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", # Formato del log
handlers=[
RotatingFileHandler(os.path.join(os.getcwd(),LOG), maxBytes=1000000, backupCount=5) # Archivo donde se guardarán los logs
]
)
logger = logging.getLogger(__name__)
app = FastAPI(
title=PROJECT_NAME,
version=API_VERSION
)
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # Allow all origins
allow_credentials=True,
allow_methods=["*"], # Allow all methods
allow_headers=["*"], # Allow all headers
)
app.include_router(items.router, tags=["Items"])
app.include_router(eyes.router, tags=["Eyes"])
app.include_router(processes.router, tags=["Processes"])
app.include_router(login.router, tags=["Token"])
app.include_router(david.router, tags=["Eyes"])
app.mount("/data", StaticFiles(directory="app/data"), name="data")
@app.get("/", include_in_schema=False)
async def root(request: Request):
client_host = request.client.host
logger.info(f"Example endpoint accessed from IP: {client_host}")
return RedirectResponse(url="/docs")
@app.get("/check")
async def read_example(request: Request):
client_host = request.client.host
logger.info(f"Check set up API from IP: {client_host}")
return {"message": "Colorimetry Analisys WebApp"}
if __name__ == "__main__":
logger.info("Starting API")
uvicorn.run(app, host=HOST, port=PORT, log_level="info")