All Modules

SQL Connect

Data Layer Generation

Generate complete, type-safe data layers from your database schema. FastAPI, .NET Core, Node.js, and Next.js with SAGA pattern support for distributed transactions.

Supported Frameworks

🐍

FastAPI

Python async API with Pydantic models

💜

.NET Core

C# Web API with Entity Framework

💚

Node.js

Express/Fastify with TypeScript

Next.js

API routes with tRPC support

Generated Components

API Layer

  • RESTful endpoints for all tables
  • Stored procedure endpoints
  • OpenAPI/Swagger documentation
  • Authentication middleware

Type Definitions

  • TypeScript interfaces
  • Zod validation schemas
  • Pydantic models (Python)
  • C# DTOs and records

Frontend Clients

  • React Query hooks
  • Vue composables
  • Python SDK client
  • tRPC client/server

SAGA Support

  • Distributed transaction handling
  • Compensation logic
  • State machine tracking
  • Retry and rollback

Sample Generated Code

# Generated FastAPI endpoint
from fastapi import APIRouter, Depends, HTTPException
from pydantic import BaseModel
from typing import List, Optional
from datetime import datetime

router = APIRouter(prefix="/customers", tags=["customers"])

class Customer(BaseModel):
    customer_id: int
    first_name: str
    last_name: str
    email: str
    created_at: datetime

class CustomerCreate(BaseModel):
    first_name: str
    last_name: str
    email: str

@router.get("/", response_model=List[Customer])
async def list_customers(
    skip: int = 0,
    limit: int = 100,
    db: Database = Depends(get_db)
):
    """List all customers with pagination."""
    return await db.fetch_all(
        "SELECT * FROM Customers ORDER BY customer_id OFFSET :skip ROWS FETCH NEXT :limit ROWS ONLY",
        {"skip": skip, "limit": limit}
    )

@router.post("/", response_model=Customer)
async def create_customer(
    customer: CustomerCreate,
    db: Database = Depends(get_db)
):
    """Create a new customer."""
    result = await db.execute(
        "EXEC dbo.CreateCustomer @FirstName=:first_name, @LastName=:last_name, @Email=:email",
        customer.dict()
    )
    return await db.fetch_one("SELECT * FROM Customers WHERE customer_id = :id", {"id": result})

Configuration-Driven

Define your API structure in JSON or use the database table for dynamic operations

{
  "api_operations": [
    {
      "name": "GetCustomerOrders",
      "method": "GET",
      "path": "/customers/{customerId}/orders",
      "procedure": "dbo.GetCustomerOrders",
      "parameters": [
        {"name": "customerId", "type": "int", "source": "path"}
      ],
      "response": {
        "type": "array",
        "schema": "Order"
      }
    },
    {
      "name": "ProcessPayment",
      "method": "POST",
      "path": "/payments",
      "saga": {
        "enabled": true,
        "steps": [
          {"action": "ValidatePayment", "compensation": "VoidPayment"},
          {"action": "DeductInventory", "compensation": "RestoreInventory"},
          {"action": "CreateShipment", "compensation": "CancelShipment"}
        ]
      }
    }
  ]
}

Generate Your API Layer

Type-safe APIs with SAGA pattern support, generated and maintained automatically.

No credit card required • Free for individual developers