Files
restloom/docs/getting-started.md
T

1.8 KiB

Getting started

Install

Install the package for your database. It brings the core and the database driver with it, except for SQLite, which also needs better-sqlite3:

npm install @crudy/restloom-postgres
Database Package
PostgreSQL 13+ @crudy/restloom-postgres
MySQL 8.0+ @crudy/restloom-mysql
SQL Server 2022+ @crudy/restloom-mssql
SQLite 3.44+ @crudy/restloom-sqlite

Each of them exports the whole core, so everything is imported from that one package. The examples in these pages use @crudy/restloom-postgres; with another database, import from its package instead.

Serve a schema

import http from 'node:http';
import { createREST, nodeListener, postgres } from '@crudy/restloom-postgres';

const rest = createREST({
    db: postgres(process.env.DATABASE_URL),
    expose: { schemas: ['app'] },
});

http.createServer(nodeListener(rest, { prefix: '/api' })).listen(3000);

nodeListener comes with the core, so no framework is needed. Every table and view of app is now a resource, read-only:

curl -g 'http://localhost:3000/api/todos?select=id,name,owner(name)&status=eq.open'

Add write: true beside expose to create, update and delete rows in every table too. Do it once your authorize hook decides who may write: Writes.

Next