Automated Action 4d6c2e1778 Implement Anime Information API with FastAPI and SQLite
- Create project structure and dependencies
- Set up SQLAlchemy models for anime, genres, and their relationships
- Implement CRUD operations for all models
- Set up FastAPI endpoints for managing anime and genres
- Add health check endpoint
- Configure Alembic for database migrations
- Add data seeding capability
- Update README with project information
2025-05-17 21:37:16 +00:00
2025-05-17 21:29:02 +00:00

Anime Information API

This is a FastAPI application that provides anime information via a RESTful API.

Features

  • Anime Information: Comprehensive anime data including titles, synopsis, episodes, scores, etc.
  • Genre Management: Create, read, update, and delete anime genres
  • Search Capabilities: Search anime by title, genre, or status
  • Health Endpoint: Check the health of the application and its database connection

Tech Stack

  • Framework: FastAPI
  • Database: SQLite with SQLAlchemy ORM
  • Migration Tool: Alembic
  • Validation: Pydantic
  • Code Quality: Ruff linter

Project Structure

anime-information-api/
├── alembic/               # Database migrations
├── app/                   # Application code
│   ├── api/               # API endpoints
│   │   └── endpoints/     # Route definitions
│   ├── core/              # Core application components
│   ├── crud/              # CRUD operations
│   ├── db/                # Database setup
│   ├── initial_data/      # Data seeding
│   ├── models/            # SQLAlchemy models
│   └── schemas/           # Pydantic schemas
├── storage/               # Storage for SQLite database
├── alembic.ini            # Alembic config
├── main.py                # Application entry point
├── requirements.txt       # Dependencies
└── seed_data.py           # Script to seed initial data

Getting Started

Prerequisites

  • Python 3.9+

Installation

  1. Clone the repository
  2. Install dependencies:
    pip install -r requirements.txt
    

Database Setup

Run the Alembic migrations to set up the database schema:

alembic upgrade head

Seed the database with initial data:

python seed_data.py

Running the Application

Start the application with:

uvicorn main:app --reload

The API will be available at http://localhost:8000, and the interactive API documentation at http://localhost:8000/docs.

API Endpoints

Health Check

  • GET /health: Check application health

Anime

  • GET /api/v1/anime/: Get anime list with search capabilities
  • POST /api/v1/anime/: Create new anime
  • GET /api/v1/anime/{id}: Get anime by ID
  • PUT /api/v1/anime/{id}: Update anime
  • DELETE /api/v1/anime/{id}: Delete anime

Genres

  • GET /api/v1/genres/: Get genre list
  • POST /api/v1/genres/: Create new genre
  • GET /api/v1/genres/{id}: Get genre by ID
  • PUT /api/v1/genres/{id}: Update genre
  • DELETE /api/v1/genres/{id}: Delete genre
Description
Project: Anime Information API
Readme 76 KiB
Languages
Python 99.2%
Mako 0.8%