Updated the API to use Core
This commit is contained in:
@@ -3,6 +3,7 @@
|
|||||||
"1" : "uviconrn",
|
"1" : "uviconrn",
|
||||||
"2" : "fastapi",
|
"2" : "fastapi",
|
||||||
"3" : "pydantic",
|
"3" : "pydantic",
|
||||||
"4" : "sqlalchemy"
|
"4" : "pydantic-settings",
|
||||||
|
"5" : "sqlalchemy"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
7
src/.env
Normal file
7
src/.env
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
DATABASE_URL=sqlite:///./users.db
|
||||||
|
API_TITLE=Users Microservice
|
||||||
|
API_VERSION=1.0.0
|
||||||
|
HOST=0.0.0.0
|
||||||
|
PORT=8000
|
||||||
|
RELOAD=true
|
||||||
|
LOG_LEVEL=info
|
||||||
3
src/__init__.py
Normal file
3
src/__init__.py
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
from core.config import settings
|
||||||
|
|
||||||
|
__all__ = ["settings"]
|
||||||
Binary file not shown.
BIN
src/core/__pycache__/config.cpython-314.pyc
Normal file
BIN
src/core/__pycache__/config.cpython-314.pyc
Normal file
Binary file not shown.
29
src/core/config.py
Normal file
29
src/core/config.py
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
from pydantic_settings import BaseSettings
|
||||||
|
from pydantic import Field
|
||||||
|
|
||||||
|
class Settings(BaseSettings):
|
||||||
|
"""Configuración de la aplicación"""
|
||||||
|
|
||||||
|
# Base de datos
|
||||||
|
database_url: str = Field(
|
||||||
|
default="sqlite:///./test.db",
|
||||||
|
description="URL de conexión a la base de datos"
|
||||||
|
)
|
||||||
|
|
||||||
|
# API
|
||||||
|
api_title: str = "Users Microservice"
|
||||||
|
api_version: str = "1.0.0"
|
||||||
|
api_description: str = "Microservicio de gestión de usuarios"
|
||||||
|
|
||||||
|
# Server
|
||||||
|
host: str = "0.0.0.0"
|
||||||
|
port: int = 8000
|
||||||
|
reload: bool = True
|
||||||
|
log_level: str = "info"
|
||||||
|
|
||||||
|
class Config:
|
||||||
|
env_file = ".env"
|
||||||
|
case_sensitive = False
|
||||||
|
|
||||||
|
|
||||||
|
ConfSettings = Settings()
|
||||||
Binary file not shown.
@@ -1,11 +1,12 @@
|
|||||||
from sqlalchemy import create_engine
|
from sqlalchemy import create_engine
|
||||||
from sqlalchemy.orm import sessionmaker, declarative_base
|
from sqlalchemy.orm import sessionmaker, declarative_base
|
||||||
|
from core.config import ConfSettings
|
||||||
|
|
||||||
DATABASE_URL = "sqlite:///./users.db"
|
DATABASE_URL = "sqlite:///./users.db"
|
||||||
|
|
||||||
engine = create_engine(
|
engine = create_engine(
|
||||||
DATABASE_URL,
|
ConfSettings.database_url,
|
||||||
connect_args={"check_same_thread": False}
|
connect_args={"check_same_thread": False} if "sqlite" in ConfSettings.database_url else {}
|
||||||
)
|
)
|
||||||
|
|
||||||
SessionLocal = sessionmaker(
|
SessionLocal = sessionmaker(
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -1,7 +1,10 @@
|
|||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
|
from core.config import ConfSettings
|
||||||
from infrastructure.api.users.router import router
|
from infrastructure.api.users.router import router
|
||||||
|
|
||||||
def create_app() -> FastAPI:
|
def create_app() -> FastAPI:
|
||||||
app = FastAPI(title="Users service")
|
app = FastAPI(title=ConfSettings.api_title,
|
||||||
|
version=ConfSettings.api_version,
|
||||||
|
description=ConfSettings.api_description)
|
||||||
app.include_router(router)
|
app.include_router(router)
|
||||||
return app
|
return app
|
||||||
@@ -1,10 +1,16 @@
|
|||||||
from fastapi import APIRouter
|
from fastapi import APIRouter
|
||||||
|
import platform
|
||||||
|
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|
||||||
@router.get("/")
|
@router.get("/")
|
||||||
def root():
|
def root():
|
||||||
|
uname = platform.uname()
|
||||||
return {
|
return {
|
||||||
|
"machine": {
|
||||||
|
"OS" : f"{uname.system} {uname.release}",
|
||||||
|
"Arch": uname.machine
|
||||||
|
},
|
||||||
"Status": "Running",
|
"Status": "Running",
|
||||||
"Docs": "/docs"
|
"Docs": "/docs"
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
from infrastructure.api.users.app import create_app
|
from infrastructure.api.users.app import create_app
|
||||||
|
from core.config import ConfSettings
|
||||||
|
|
||||||
app = create_app()
|
app = create_app()
|
||||||
|
|
||||||
@@ -6,10 +7,10 @@ def run():
|
|||||||
import uvicorn
|
import uvicorn
|
||||||
uvicorn.run(
|
uvicorn.run(
|
||||||
"main:app",
|
"main:app",
|
||||||
host="0.0.0.0",
|
host=ConfSettings.host,
|
||||||
port=8000,
|
port=ConfSettings.port,
|
||||||
reload=True,
|
reload=ConfSettings.reload,
|
||||||
log_level="info",
|
log_level=ConfSettings.log_level,
|
||||||
)
|
)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|||||||
BIN
src/users.db
BIN
src/users.db
Binary file not shown.
Reference in New Issue
Block a user