Як створити просте 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 — усе залежить від ваших потреб.