Bart Dorsey

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

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

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

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