Skip to content
Written with Claude

Examples

This section provides hands-on examples demonstrating NpgsqlRest features. Each example builds on the previous one, progressively introducing more advanced concepts.

New to NpgsqlRest? Start with the SQL File examples — they're the recommended way to build endpoints and don't require any PostgreSQL function definitions.

All examples are available in the examples repository on GitHub.

Prerequisites

Before running the examples, ensure you have:

  • PostgreSQL running locally (port 5432)
  • Bun runtime installed (bun.sh)
  • A database named example_db with default credentials (postgres/postgres)

Getting Started

  1. Clone the repository:
bash
bash
git clone https://github.com/NpgsqlRest/npgsqlrest-docs.git
cd npgsqlrest-docs/examples
  1. Install dependencies (downloads the NpgsqlRest binary and sets up required tools):
bash
bash
bun install
  1. Navigate to any example directory and run it:
bash
bash
cd 1_my_first_function

# Apply database migrations
bun run db:up

# Start the server (also rebuilds TypeScript and HTTP files)
bun run dev
  1. Visit http://127.0.0.1:8080 to see the result.

Available Examples

Function-Based Examples (RoutineSource)

These examples use PostgreSQL functions and procedures as the endpoint source:

ExampleDescriptionRelated Blog Post
1_my_first_functionThe basics: creating a PostgreSQL function and exposing it as an HTTP endpoint with automatic TypeScript client generationEnd-to-End Type Checking
2_static_type_checkingHow NpgsqlRest's autogenerated client code provides static type safety, catching breaking changes at build timeEnd-to-End Type Checking
3_security_and_authDatabase-level security with cookie-based authentication and the principle of least privilegeDatabase-Level Security
4_passwords_tokens_rolesPassword verification, JWT/Bearer tokens, role-based access control (RBAC), and external OAuth providersMultiple Auth Schemes & RBAC
5_csv_basic_authCSV exports with HTTP Basic Auth, Excel integration, and type composition for BI use casesPostgreSQL BI Server
6_image_uploadsSecure image uploads with file system storage, PostgreSQL Large Objects, and progress trackingSecure Image Uploads
7_csv_excel_uploadsCSV and Excel file ingestion with row-by-row processing and automatic TypeScript clientsCSV & Excel Ingestion
8_simple_chat_clientReal-time chat application using Server-Sent Events (SSE) and PostgreSQL RAISE statementsReal-Time Chat with SSE
9_http_callsExternal API calls from PostgreSQL using HTTP custom types defined in type commentsExternal API Calls
10_proxy_ai_serviceReverse proxy with transform mode for caching AI responses and external service integrationReverse Proxy & AI Service
12_custom_typesCustom PostgreSQL composite types and multiset returns for complex nested JSON responsesCustom Types & Multiset
13_passkeyWebAuthn passkey authentication with pure SQL: passwordless login using device biometricsPasskey SQL Auth
14_table_formatExcel export and stats endpoints with HTML table format output and cookie authenticationExcel Exports Done Right

SQL File Examples (SqlFileSource) v3.12.0

These examples use the new SQL File Source plugin — endpoints are generated directly from .sql files without needing PostgreSQL functions. Each is the SQL File equivalent of the function-based example above:

ExampleDescriptionFunction-Based Equivalent
1_my_first_function_sql_fileThe basics: creating an endpoint from a .sql file with automatic TypeScript client generation1_my_first_function
2_static_type_checking_sql_fileStatic type safety with SQL File Source — catching breaking changes at build time2_static_type_checking
3_security_and_auth_sql_fileDatabase-level security with cookie-based authentication using SQL files3_security_and_auth
4_passwords_tokens_roles_sql_filePassword verification, JWT/Bearer tokens, and RBAC using SQL files4_passwords_tokens_roles
5_csv_basic_auth_sql_fileCSV exports with HTTP Basic Auth using SQL files5_csv_basic_auth
6_image_uploads_sql_fileSecure image uploads with file system storage and Large Objects using SQL files6_image_uploads
7_csv_excel_uploads_sql_fileCSV and Excel file ingestion with row-by-row processing using SQL files7_csv_excel_uploads
8_simple_chat_client_sql_fileReal-time chat application using SSE and SQL files8_simple_chat_client
9_http_calls_sql_fileExternal API calls from PostgreSQL using SQL files9_http_calls
10_proxy_ai_service_sql_fileReverse proxy with AI response caching using SQL files10_proxy_ai_service
12_custom_types_sql_fileCustom composite types and nested JSON responses using SQL files12_custom_types
14_table_format_sql_fileExcel export and stats endpoints with HTML table format using SQL files14_table_format

Available Commands

Each example provides these scripts:

CommandDescription
bun run devStart NpgsqlRest server (rebuilds TypeScript and HTTP files)
bun run buildCompile TypeScript to JavaScript
bun run watchWatch mode for TypeScript changes
bun run db:upApply database migrations
bun run db:listList pending migrations

Next Steps

After completing these examples, explore:

Comments