Automated Action bf1393d643 Create Simple Todo API with FastAPI and SQLite
- Set up FastAPI project structure
- Configure SQLAlchemy with SQLite
- Create Todo model and schemas
- Implement CRUD operations
- Add API endpoints for Todo management
- Configure Alembic for database migrations
- Add health check endpoint
- Add comprehensive documentation
2025-05-17 20:16:30 +00:00
2025-05-17 20:12:31 +00:00

SimpleTodoAPI

A simple FastAPI-based RESTful API for managing todo items with SQLite database.

Features

  • Create, read, update, and delete todo items
  • SQLite database with SQLAlchemy ORM
  • Database migrations with Alembic
  • API documentation with Swagger UI and ReDoc
  • Health check endpoint
  • Input validation with Pydantic

Project Structure

.
├── alembic.ini                    # Alembic configuration
├── app                            # Application package
│   ├── api                        # API endpoints
│   │   └── routes                 # API routes
│   │       ├── health.py          # Health check endpoint
│   │       └── todo.py            # Todo endpoints
│   ├── core                       # Core module
│   │   └── config.py              # Application configuration
│   ├── crud                       # CRUD operations
│   │   └── todo.py                # Todo CRUD operations
│   ├── db                         # Database module
│   │   ├── base.py                # Base DB class and model imports
│   │   └── session.py             # Database session management
│   ├── models                     # SQLAlchemy models
│   │   └── todo.py                # Todo model
│   └── schemas                    # Pydantic schemas
│       └── todo.py                # Todo schemas
├── main.py                        # Application entry point
├── migrations                     # Alembic migrations
│   ├── env.py                     # Alembic environment
│   ├── script.py.mako             # Migration script template
│   └── versions                   # Migration versions
│       └── 20231031_010000_create_todos_table.py  # Initial migration
└── requirements.txt               # Project dependencies

API Endpoints

  • GET /health - Health check endpoint
  • GET /api/v1/todos/ - List all todos
  • POST /api/v1/todos/ - Create a new todo
  • GET /api/v1/todos/{todo_id} - Get a specific todo
  • PUT /api/v1/todos/{todo_id} - Update a todo
  • DELETE /api/v1/todos/{todo_id} - Delete a todo

API Documentation

When the server is running, you can access:

Requirements

  • Python 3.7+
  • FastAPI
  • Uvicorn
  • SQLAlchemy
  • Alembic
  • Pydantic
  • Ruff (for linting)

Installation

# Clone the repository
git clone <repository-url>

# Change to the project directory
cd simpletodoapi

# Install dependencies
pip install -r requirements.txt

Database Setup

# Apply database migrations
alembic upgrade head

Running the Application

# Start the server
uvicorn main:app --reload

The API will be available at http://localhost:8000.

Development

Creating new migrations

# Generate a new migration
alembic revision -m "description of changes"

Linting

# Run ruff linter
ruff check .

# Run ruff formatter
ruff format .

License

This project is licensed under the MIT License.

Description
Project: Simple Todo API
Readme 39 KiB
Languages
Python 94.9%
Mako 5.1%