56 lines
1.3 KiB
Markdown
56 lines
1.3 KiB
Markdown
# Todo App API
|
|
|
|
A simple FastAPI-based Todo application with SQLite database.
|
|
|
|
## Features
|
|
|
|
- Create, read, update, and delete todos
|
|
- SQLite database with SQLAlchemy ORM
|
|
- Database migrations with Alembic
|
|
- CORS enabled for all origins
|
|
- Health check endpoint
|
|
- Interactive API documentation
|
|
|
|
## API Endpoints
|
|
|
|
- `GET /` - Root endpoint with app information
|
|
- `GET /health` - Health check endpoint
|
|
- `GET /todos/` - Get all todos (with pagination)
|
|
- `POST /todos/` - Create a new todo
|
|
- `GET /todos/{todo_id}` - Get a specific todo
|
|
- `PUT /todos/{todo_id}` - Update a todo
|
|
- `DELETE /todos/{todo_id}` - Delete a todo
|
|
|
|
## Documentation
|
|
|
|
- API documentation: `/docs`
|
|
- Alternative documentation: `/redoc`
|
|
- OpenAPI schema: `/openapi.json`
|
|
|
|
## Setup and Running
|
|
|
|
1. Install dependencies:
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
2. Run the application:
|
|
```bash
|
|
uvicorn main:app --reload
|
|
```
|
|
|
|
The application will be available at `http://localhost:8000`.
|
|
|
|
## Database
|
|
|
|
The application uses SQLite database stored at `/app/storage/db/db.sqlite`.
|
|
|
|
## Todo Schema
|
|
|
|
- `id`: Integer (auto-generated)
|
|
- `title`: String (required)
|
|
- `description`: String (optional)
|
|
- `completed`: Boolean (default: false)
|
|
- `created_at`: DateTime (auto-generated)
|
|
- `updated_at`: DateTime (auto-updated)
|