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
-
Install the package using pip:
pip install fastapi-boilerplate-generator
-
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 56f36a3f1c8468ab4577bf72a66c53749a54a4948a60b95e746a7a2112ce3f1a |
|
MD5 | 1509aa1a28e69bc855294c5f4225a3de |
|
BLAKE2b-256 | 12a919e59895437756d829bf4d95b783482de7772b12d1dffedd2a596c871bf9 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2fe2f9943f6f3db6dc0c48d7ecba7b46734323cc17d360b467caf92bf6322faf |
|
MD5 | 5e1393ddffbc94cf3408fcbb91500b9b |
|
BLAKE2b-256 | 348a32e56cc346ab405df8274bd06e70d6c4b2a437306b4cda365dacd995b483 |