Як створити просте API? Express + Prisma

У сучасній веб-розробці створення API — це базовий навик. І якщо ви хочете побудувати просте, швидке та типобезпечне API — поєднання Express і Prisma буде чудовим вибором. У цій статті розглянемо покроково, як створити свій перший API на Node.js із використанням цих інструментів.

Що таке Express?

Express — це мінімалістичний веб-фреймворк для Node.js. Він дозволяє легко створювати маршрути, обробники запитів і сервери.

Що таке Prisma?

Prisma — це ORM (Object-Relational Mapping), яка спрощує взаємодію з базами даних. Вона дозволяє працювати з SQL-базами (PostgreSQL, MySQL, SQLite тощо) через JavaScript/TypeScript API.

Початок роботи: ініціалізація проєкту

mkdir express-prisma-api && cd express-prisma-api
npm init -y
npm install express prisma @prisma/client
npx prisma init

Налаштування бази даних (SQLite)

В prisma/schema.prisma:

datasource db {
  provider = "sqlite"
  url      = "file:./dev.db"
}

generator client {
  provider = "prisma-client-js"
}

model Post {
  id        Int      @id @default(autoincrement())
  title     String
  content   String?
  published Boolean  @default(false)
  createdAt DateTime @default(now())
}

Тепер виконаємо міграцію:

npx prisma migrate dev --name init

Створення базового Express-сервера

const express = require("express");
const { PrismaClient } = require("@prisma/client");

const app = express();
const prisma = new PrismaClient();

app.use(express.json());

app.get("/posts", async (req, res) => {
  const posts = await prisma.post.findMany();
  res.json(posts);
});

app.post("/posts", async (req, res) => {
  const { title, content } = req.body;
  const post = await prisma.post.create({
    data: {
      title,
      content
    }
  });
  res.status(201).json(post);
});

app.listen(3000, () => {
  console.log("Server is running on http://localhost:3000");
});

Тестування API

  • GET /posts — отримаєте список усіх постів
  • POST /posts з тілом:
{
  "title": "Мій перший пост",
  "content": "Вітаю у Prisma + Express!"
}

Висновок

Зв’язка Express і Prisma дозволяє швидко створити надійне REST API з типобезпечною ORM. Цей стек ідеально підходить як для прототипування, так і для невеликих продакшен-проєктів. Далі ви можете додати валідацію, аутентифікацію, пагінацію, або перейти до використання TypeScript — усе залежить від ваших потреб.