Skip to content

Instantly share code, notes, and snippets.

@bartdorsey
Created April 15, 2025 15:17
Show Gist options
  • Save bartdorsey/f6cab2505715677caef02d8c2c2e9dcb to your computer and use it in GitHub Desktop.
Save bartdorsey/f6cab2505715677caef02d8c2c2e9dcb to your computer and use it in GitHub Desktop.
FastAPI architecture

FastAPI architecture

Simple GET /items request without a database

sequenceDiagram
    participant User as πŸ§‘ User
    participant Frontend as 🌐 Frontend (Vanilla JS)
    participant Backend as βš™οΈ FastAPI Backend
    participant Memory as 🧠 In-memory List

    User->>Frontend: Opens website
    Frontend->>Backend: HTTP request (e.g. GET /items)
    Backend->>Backend: Validate request / route handling
    Backend->>Memory: Read items from list
    Memory-->>Backend: Return list data
    Backend-->>Frontend: JSON response
    Frontend-->>User: Render data in UI
Loading

Simple POST /items request without a database

sequenceDiagram
    participant User as πŸ§‘ User
    participant Frontend as 🌐 Frontend (Vanilla JS)
    participant Backend as βš™οΈ FastAPI Backend
    participant Memory as 🧠 In-memory List

    User->>Frontend: Submit form (e.g. new item)
    Frontend->>Backend: HTTP POST /items with JSON payload
    Backend->>Backend: Validate & parse request data
    Backend->>Memory: Append item to list
    Memory-->>Backend: Confirm addition
    Backend-->>Frontend: JSON response (success)
    Frontend-->>User: Show confirmation
Loading

Simple GET /items request with a database

sequenceDiagram
    participant User as πŸ§‘ User
    participant Frontend as 🌐 Frontend (Vanilla JS)
    participant Backend as βš™οΈ FastAPI Backend
    participant DB as 🐘 PostgreSQL Database

    User->>Frontend: Opens website
    Frontend->>Backend: HTTP request (e.g. GET /items)
    Backend->>Backend: Validate request / route handling
    Backend->>DB: SQL query (e.g. SELECT * FROM items)
    DB-->>Backend: Query result
    Backend-->>Frontend: JSON response
    Frontend-->>User: Render data in UI
Loading

Simple POST /items request with a database

sequenceDiagram
    participant User as πŸ§‘ User
    participant Frontend as 🌐 Frontend (Vanilla JS)
    participant Backend as βš™οΈ FastAPI Backend
    participant DB as 🐘 PostgreSQL Database

    User->>Frontend: Submit form (e.g. new item)
    Frontend->>Backend: HTTP POST /items with JSON payload
    Backend->>Backend: Validate & parse request data
    Backend->>DB: INSERT INTO items ...
    DB-->>Backend: Success (or error)
    Backend-->>Frontend: JSON response (success or error)
    Frontend-->>User: Show confirmation or error
Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment