2025-05-23 09:51:10 +00:00

93 lines
1.9 KiB
Markdown

# FastAPI REST API Service
A REST API service built with FastAPI and SQLite for managing items.
## Features
- RESTful API with CRUD operations for items
- SQLite database with SQLAlchemy ORM
- Alembic for database migrations
- Pydantic for data validation
- API documentation with Swagger UI and ReDoc
- Health check endpoint
- CORS middleware
## Project Structure
```
├── app
│ ├── api
│ │ ├── api.py
│ │ ├── deps.py
│ │ └── endpoints
│ │ ├── items.py
│ ├── core
│ ├── crud
│ │ ├── base.py
│ │ └── crud_item.py
│ ├── db
│ │ └── database.py
│ ├── models
│ │ ├── base.py
│ │ └── item.py
│ └── schemas
│ └── item.py
├── migrations
│ └── versions
│ └── 7e4c6a11c9d7_create_items_table.py
├── alembic.ini
├── main.py
└── requirements.txt
```
## Setup and Installation
1. Clone the repository
2. Install dependencies:
```bash
pip install -r requirements.txt
```
3. Run the application:
```bash
uvicorn main:app --host 0.0.0.0 --port 8000 --reload
```
## API Endpoints
### Health Check
```
GET /health
```
Returns the health status of the API.
### Items API
```
GET /api/v1/items
POST /api/v1/items
GET /api/v1/items/{id}
PUT /api/v1/items/{id}
DELETE /api/v1/items/{id}
```
## API Documentation
- Swagger UI: [http://localhost:8000/docs](http://localhost:8000/docs)
- ReDoc: [http://localhost:8000/redoc](http://localhost:8000/redoc)
## Database
The application uses SQLite as the database. The database file is stored at `/app/storage/db/db.sqlite`.
## Database Migrations
Migrations are managed with Alembic. The initial migration for creating the items table is already included.
## License
This project is licensed under the MIT License.