🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Book a DemoInstallSign in
Socket

smart-api-bridge

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

smart-api-bridge

A FastAPI-based CRUD API generator for MySQL databases

0.1.4
PyPI
Maintainers
1

smart-api-bridge

A flexible and dynamic CRUD (Create, Read, Update, Delete) operations library for FastAPI applications with MySQL database support.

Features

  • Dynamic CRUD operations for any MySQL table
  • Simple integration with FastAPI
  • Automatic pagination
  • Supports both hard delete and soft delete operations
  • Partial updates via the PATCH method
  • Configurable database connection
  • Secure authentication and authorization support

Installation

pip install smart-api-bridge

Quick Start

from fastapi import FastAPI
from api_bridge import APIBridge

app = FastAPI()

# Configure database connection
db_config = {
    "host": "localhost",
    "port": 3306,
    "database": "mydb",
    "user": "username",
    "password": "password@123",
}


# Initialize APIBridge
api_bridge = APIBridge(db_config)

# Create FastAPI app
app = FastAPI()
app.include_router(api_bridge.router)

# Run with uvicorn
# uvicorn main:app --reload

Available Endpoints

MethodEndpointDescription
GET/api/testTest database connection
GET/api/{table_name}Fetch all records (supports pagination)
POST/api/{table_name}Insert a new record
PUT/api/{table_name}/{record_id}Update an existing record
PATCH/api/{table_name}/{record_id}Partially update a record
DELETE/api/{table_name}/{record_id}Soft delete a record
DELETE/api/{table_name}/{record_id}/hardPermanently delete a record

Example Applications

1. E-commerce Product Management System

Manage products, categories, inventory, and orders using dynamic CRUD operations:

import os
from fastapi import FastAPI
from api_bridge import APIBridge

app = FastAPI(title="E-commerce API")

# Load database config
db_config = {
    "host": os.getenv("DB_HOST", "localhost"),
    "port": int(os.getenv("DB_PORT", 3306)),
    "database": os.getenv("DB_NAME", "ecommerce"),
    "user": os.getenv("DB_USER", "user"),
    "password": os.getenv("DB_PASS", "password"),
}

# Initialize APIBridge
api_bridge = APIBridge(db_config)

app.include_router(api_bridge.router)

@app.get("/")
def read_root():
    return {"message": "E-commerce API ready"}

2. Content Management System (CMS)

Manage blog posts, pages, users, and media files:

from fastapi import FastAPI
from api_bridge import 
from fastapi.middleware.cors import CORSMiddleware
import os

app = FastAPI(title="CMS API")

# Configure CORS
app.add_middleware(
    CORSMiddleware,
    allow_origins=["*"],
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

# Load database config
db_config = {
    "host": os.getenv("DB_HOST", "localhost"),
    "port": int(os.getenv("DB_PORT", 3306)),
    "database": os.getenv("DB_NAME", "cms"),
    "user": os.getenv("DB_USER", "user"),
    "password": os.getenv("DB_PASS", "password"),
}

# Initialize APIBridge
api_bridge = APIBridge(db_config)

app.include_router(api_bridge.router)

@app.get("/")
def read_root():
    return {"message": "CMS API ready"}

Workflow to Publish as a PyPI Package

  • Prepare Your Package Structure:

    smart-api-bridge/
    ├── smart_api_bridge/
    │   ├── __init__.py
    │   ├── db.py
    │   ├── router.py
    ├── setup.py
    ├── README.md
    ├── LICENSE
    └── requirements.txt
    
  • Test Your Package Locally:

    pip install -e .
    
  • Build Your Package:

    pip install build
    python -m build
    
  • Upload to PyPI Test:

    pip install twine
    twine upload --repository-url https://test.pypi.org/legacy/ dist/*
    
  • Test Your Package from TestPyPI:

    pip install --index-url https://test.pypi.org/simple/ smart-api-bridge
    
  • Upload to PyPI:

    twine upload dist/*
    

License

This project is licensed under the MIT License - see the LICENSE file for details.

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts