
- Setup project structure and FastAPI application - Configure SQLite database with SQLAlchemy ORM - Setup Alembic for database migrations - Implement user authentication with JWT - Create task models and CRUD operations - Implement task assignment functionality - Add detailed API documentation - Create comprehensive README with usage instructions - Lint code with Ruff
67 lines
1.7 KiB
Python
67 lines
1.7 KiB
Python
from fastapi.openapi.models import ExternalDocumentation
|
|
|
|
# External documentation
|
|
external_docs = ExternalDocumentation(
|
|
description="Task Manager API Documentation",
|
|
url="/redoc",
|
|
)
|
|
|
|
# API description
|
|
api_description = """
|
|
# Task Manager API
|
|
|
|
A RESTful API for managing tasks and assignments built with FastAPI and SQLite.
|
|
|
|
## Features
|
|
|
|
* User authentication and registration
|
|
* Task creation and management
|
|
* Task status tracking
|
|
* Task assignment to users
|
|
* Filtering and searching tasks
|
|
|
|
## Authentication
|
|
|
|
This API uses OAuth2 with JWT tokens for authentication.
|
|
Most endpoints require authentication.
|
|
|
|
To authenticate:
|
|
1. Use the `/api/v1/auth/login` endpoint with your username and password
|
|
2. Use the returned token in the Authorization header as `Bearer {token}`
|
|
|
|
## Rate Limiting
|
|
|
|
There is no rate limiting implemented in this version of the API.
|
|
|
|
## Pagination
|
|
|
|
List endpoints support pagination with `skip` and `limit` parameters.
|
|
"""
|
|
|
|
# Tags metadata
|
|
tags_metadata = [
|
|
{
|
|
"name": "Health",
|
|
"description": "Health check endpoints to verify API status.",
|
|
},
|
|
{
|
|
"name": "Authentication",
|
|
"description": "Operations for authentication, including login.",
|
|
},
|
|
{
|
|
"name": "Users",
|
|
"description": "Operations with users, including registration, profile "
|
|
"and user management.",
|
|
},
|
|
{
|
|
"name": "Tasks",
|
|
"description": "CRUD operations for tasks, including creation, updates, "
|
|
"and retrieval.",
|
|
},
|
|
{
|
|
"name": "Task Assignments",
|
|
"description": "Operations for assigning tasks to users and managing "
|
|
"task assignments.",
|
|
},
|
|
]
|