1.4 KiB
1.4 KiB
Getting started
Install
Install the core, the package for your database, and its driver:
npm install @crudy/restloom @crudy/restloom-postgres pg
| Database | Package | Driver |
|---|---|---|
| PostgreSQL 13+ | @crudy/restloom-postgres |
pg |
| MySQL 8.0+ | @crudy/restloom-mysql |
mysql2 |
| SQL Server 2022+ | @crudy/restloom-mssql |
mssql |
| SQLite 3.44+ | @crudy/restloom-sqlite |
better-sqlite3 |
Serve a schema
import http from 'node:http';
import pg from 'pg';
import { createREST, nodeListener } from '@crudy/restloom';
import { postgres } from '@crudy/restloom-postgres';
const rest = createREST({
db: postgres(new pg.Pool({ connectionString: process.env.DATABASE_URL })),
expose: { schemas: ['app'] },
});
http.createServer(nodeListener(rest, { prefix: '/api' })).listen(3000);
Every table and view of app is now a resource, read-only:
curl -g 'http://localhost:3000/api/assets?select=id,name,owner(name)&status=eq.open'
Next
- Discovery and overrides: what becomes a resource, which columns are hidden, how relations are named.
- Query grammar: everything a GET can ask.
- Writes and procedures: turning writes on, calling functions.
- Security and hooks: authorising requests, row security, scoping.
- Adapters: Fastify, Express, or any framework.