Architecture
Understanding the layered architecture of ForgeAPI.
ForgeAPI follows a 6-layer architecture pattern for maximum separation of concerns and testability.
Directory Structure
app
api
v1
endpoints
router.py
core
config.py
security.py
models
user.py
base.py
services
auth.py
user.py
repositories
user.py
The 6 Layers
| Layer | Responsibility | Location |
|---|---|---|
| 1. API | HTTP request/response handling | app/api/ |
| 2. Services | Business logic orchestration | app/services/ |
| 3. Repositories | Data access abstraction | app/repositories/ |
| 4. Models | Database entity definitions | app/models/ |
| 5. Schemas | Request/response validation | app/schemas/ |
| 6. Core | Configuration and utilities | app/core/ |
Configuration
All configuration is centralized in the settings module:
app/core/config.py
import os
from pydantic import BaseSettings
class Settings(BaseSettings):
# Application
APP_NAME: str = "ForgeAPI"
DEBUG: bool = False
# Database
DATABASE_URL: str
# Security
SECRET_KEY: str
ACCESS_TOKEN_EXPIRE_MINUTES: int = 30
class Config:
env_file = ".env"
settings = Settings()Environment Variables
Never commit sensitive values like SECRET_KEY to version control. Always use environment variables.