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:
pip install -r requirements.txt
  1. Run the application:
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

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.

Description
Project: REST API Service
Readme 41 KiB
Languages
Python 96.3%
Mako 3.7%