01 — Data list
data: T[] turns into a list endpoint with full CRUD. No glue code.
Run this chapter in 30 seconds
- Open in StackBlitz → — full Node sandbox in your browser, no install.
- Wait for
npm installto finish, then in the Terminal tab run:npx tsx examples/01-data-list/server.ts - Paste any request from the Try it section below into the Terminal (use
curl— the StackBlitz preview port is forwarded).
Concept
Define an array of items. mockr registers GET / POST / PUT / PATCH / DELETE on the URL. Mutations persist in memory across requests.
Code
ts
import { mockr } from '@yoyo-org/mockr';
interface Todo {
id: number;
title: string;
done: boolean;
}
type Endpoints = {
'/api/todos': Todo[];
};
mockr<Endpoints>({
port: 3001,
endpoints: [
{
url: '/api/todos',
data: [
{ id: 1, title: 'Buy milk', done: false },
{ id: 2, title: 'Write tests', done: true },
{ id: 3, title: 'Deploy to prod', done: false },
],
},
],
});Try it
Open in StackBlitz → — paste each curl into the StackBlitz Terminal once npx tsx examples/01-data-list/server.ts is running.
bash
# list
curl -s http://localhost:3001/api/todos
# insert (auto-generated id)
curl -s -X POST http://localhost:3001/api/todos \
-H 'Content-Type: application/json' \
-d '{"title":"New","done":false}'
# patch
curl -s -X PATCH http://localhost:3001/api/todos/1 \
-H 'Content-Type: application/json' \
-d '{"done":true}'
# delete
curl -s -X DELETE http://localhost:3001/api/todos/1 -iPOST returns the inserted item with a generated id. PATCH returns the merged item. DELETE returns 204.
What's next
Move data into a JSON file with hot-reload → 02 — Data files.