Skip to main content

A FastAPI-based application for dynamic API generation, Db schema visualization, UML ERD class Diagrams generation and more.

Project description

FashGenAPI

FashGenAPI is a versatile package designed to simplify and accelerate your FastAPI project development. It provides essential tools for automatic generation of project structure, models, endpoints, documentation, diagrams, and database management, all integrated into a single command-line interface (CLI).

Features

1. Auto-Generated Documentation

  • Swagger & ReDoc: Automatically integrates Swagger UI and ReDoc for easy API documentation.
  • Custom Templates: Customize the look and feel of your API documentation with predefined templates.
  • Real-time updates: Auto-generates documentation when project components are modified.

2. Authentication and Authorization

  • JWT-based Authentication: Built-in support for JWT (JSON Web Token) to secure your API.
  • OAuth2: Easily integrate OAuth2 for external authentication providers.
  • Role-based Access Control (RBAC): Predefined user roles and permissions for easy management of access levels.

3. Database Migrations and ORM Integration

  • SQLAlchemy: Integrated SQLAlchemy ORM for smooth database interaction.
  • Alembic Migrations: Auto-generate database migration scripts.
  • Multiple Database Support: Configure PostgreSQL, SQLite, or other databases with ease.

4. Auto-Generate ERD (Entity-Relationship Diagrams)

  • Automatically generate ERD diagrams from SQLAlchemy models or directly from your database schema using ERAlchemy.

5. Class Diagram Generation (UML)

  • Automatically generate class diagrams using PlantUML.

6. Mermaid.js Diagram Generation

  • Generate flowcharts and other diagrams using Mermaid.js via CLI.

7. API Endpoint and Model Generation

  • Custom Endpoints: Automatically generate new FastAPI endpoints with a simple command.
  • SQLAlchemy Models: Generate basic SQLAlchemy models with one command.

Installation

  1. Install the package using pip:

    pip install fastapi-boilerplate-generator
    
  2. Install the dependencies from requirements.txt:

    pip install -r requirements.txt
    

CLI Usage

Run the FastAPI Server

python manage.py runserver

Create a New Endpoint

python manage.py create-endpoint <endpoint_name>
  • Example:
    python manage.py create-endpoint users
    

Create a New SQLAlchemy Model

python manage.py create-model <model_name>
  • Example:
    python manage.py create-model User
    

Database Migrations

python manage.py makemigrations

Generate ERD from SQLAlchemy Models

python manage.py auto-generate-erd

Generate Class Diagrams

python manage.py generate-class-diagram

Generate Diagrams using Mermaid.js

python manage.py generate-mermaid-diagram

Examples

Example of Generated Endpoint (users.py)

from fastapi import APIRouter

router = APIRouter()

@router.get("/")
async def get_users():
    return {"message": "Users endpoint working"}

Example of Generated SQLAlchemy Model (user.py)

from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    name = Column(String)

Configuration

Database Configuration

You can configure your database connection inside your FastAPI app:

DATABASE_URL = "postgresql+psycopg2://username:password@localhost/dbname"

JWT Configuration

To secure your API with JWT, define your secret key and expiration inside your configuration file:

JWT_SECRET = "your_jwt_secret"
JWT_ALGORITHM = "HS256"
JWT_EXPIRATION_TIME_MINUTES = 30

Contributing

Contributions are welcome! Please submit a pull request or open an issue if you find any bugs or want to suggest new features.


License

This project is licensed under the MIT License. See the LICENSE file for more details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastgenapi-0.1.2.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

FastGenAPI-0.1.2-py3-none-any.whl (4.1 kB view details)

Uploaded Python 3

File details

Details for the file fastgenapi-0.1.2.tar.gz.

File metadata

  • Download URL: fastgenapi-0.1.2.tar.gz
  • Upload date:
  • Size: 5.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.0

File hashes

Hashes for fastgenapi-0.1.2.tar.gz
Algorithm Hash digest
SHA256 56f36a3f1c8468ab4577bf72a66c53749a54a4948a60b95e746a7a2112ce3f1a
MD5 1509aa1a28e69bc855294c5f4225a3de
BLAKE2b-256 12a919e59895437756d829bf4d95b783482de7772b12d1dffedd2a596c871bf9

See more details on using hashes here.

File details

Details for the file FastGenAPI-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: FastGenAPI-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 4.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.0

File hashes

Hashes for FastGenAPI-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2fe2f9943f6f3db6dc0c48d7ecba7b46734323cc17d360b467caf92bf6322faf
MD5 5e1393ddffbc94cf3408fcbb91500b9b
BLAKE2b-256 348a32e56cc346ab405df8274bd06e70d6c4b2a437306b4cda365dacd995b483

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page