# REST API Service A comprehensive REST API built with FastAPI, SQLAlchemy, and SQLite. ## Features - User management (CRUD operations) - Item management with user ownership - SQLite database with Alembic migrations - Automatic API documentation with FastAPI - CORS enabled for all origins - Health check endpoint ## Project Structure ``` ├── main.py # FastAPI application entry point ├── requirements.txt # Python dependencies ├── alembic.ini # Alembic configuration ├── alembic/ # Database migrations ├── app/ │ ├── api/ # API routes │ ├── crud/ # Database operations │ ├── db/ # Database configuration │ ├── models/ # SQLAlchemy models │ └── schemas/ # Pydantic schemas └── storage/ # Application storage directory ``` ## Installation 1. Install dependencies: ```bash pip install -r requirements.txt ``` 2. Run database migrations: ```bash alembic upgrade head ``` 3. Start the application: ```bash uvicorn main:app --reload ``` ## API Endpoints - **GET /**: Service information and links - **GET /health**: Health check endpoint - **GET /docs**: Interactive API documentation - **GET /redoc**: Alternative API documentation ### Users - **POST /api/v1/users/**: Create a new user - **GET /api/v1/users/**: List all users - **GET /api/v1/users/{user_id}**: Get user by ID - **PUT /api/v1/users/{user_id}**: Update user - **DELETE /api/v1/users/{user_id}**: Delete user ### Items - **POST /api/v1/items/**: Create a new item - **GET /api/v1/items/**: List all items - **GET /api/v1/items/{item_id}**: Get item by ID - **PUT /api/v1/items/{item_id}**: Update item - **DELETE /api/v1/items/{item_id}**: Delete item - **GET /api/v1/items/users/{user_id}/items**: Get items by user ## Database The application uses SQLite as the database, stored at `/app/storage/db/db.sqlite`. ## Environment Variables No environment variables are currently required for basic operation. ## Development The application includes: - Automatic code formatting with Ruff - Database migrations with Alembic - Comprehensive CRUD operations - Input validation with Pydantic - Automatic API documentation