Documentation
Getting Started

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 generate

Create 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!

What's Next?