Getting Started
Get up and running with Omni Rest in 5 minutes.
Prerequisites
- Node.js 18+
- A Prisma project
Installation
Install the required packages using your preferred package manager.
bash npm install omni-rest @prisma/client npm install -D prisma
Define Your Schema
Create a prisma/schema.prisma file with your models.
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "sqlite"
url = "file:./dev.db"
}
model Product {
id Int @id @default(autoincrement())
name String @unique
price Float
inventory Int @default(0)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
model Category {
id Int @id @default(autoincrement())
name String @unique
products Product[]
}Generate Prisma Client
You must regenerate the Prisma client every time you modify your schema.
npx prisma generateCreate Your API
Choose your preferred framework below to see how to initialize the API instance:
// server.ts
import express from "express";
import { PrismaClient } from "@prisma/client";
import { expressAdapter } from "omni-rest/express";
const app = express();
const prisma = new PrismaClient();
app.use(express.json());
app.use("/api", expressAdapter(prisma));
app.listen(3000, () => {
console.log("🚀 Server running on http://localhost:3000");
});Test Your API
Start your server and test the following endpoints:
curl -X POST http://localhost:3000/api/product \
-H "Content-Type: application/json" \
-d '{"name":"Laptop","price":999.99,"inventory":10}'View API Documentation
Visit http://localhost:3000/api/docs in your browser to see the auto-generated Swagger UI documentation for all endpoints, perfectly typed according to your Prisma schema!