REST API, або ж інтерфейс програмування для передачі стану представлення, є архітектурним підходом до розробки веб-сервісів. Він забезпечує обмін даними між клієнтами та серверами. Завдяки своїй простоті, адаптивності та можливості масштабування, REST API набули широкого поширення.
Prisma – це ORM (інструмент для відображення об’єктів на реляційні бази даних), який спрощує роботу з базами даних, особливо з PostgreSQL. Prisma створює типізований код, що гарантує безпечний та ефективний доступ до даних.
У цій статті ми детально розглянемо процес створення REST API з використанням Prisma та PostgreSQL. Це дозволить нам безперешкодно працювати з базою даних і розробляти динамічні веб-додатки.
Розробка моделі Prisma
Створення нового проекту
Першим кроком є ініціалізація нового проекту Prisma. Відкрийте термінал і введіть наступну команду:
npx prisma init
Синхронізація схеми бази даних
Далі, необхідно синхронізувати схему бази даних. Увійдіть до своєї бази даних PostgreSQL та виконайте наступний SQL-запит, щоб створити нову таблицю з назвою “пости”:
CREATE TABLE posts (
id SERIAL PRIMARY KEY,
title VARCHAR(255) NOT NULL,
content TEXT NOT NULL
);
Після цього поверніться до свого проекту Prisma та виконайте команду для отримання схеми бази даних:
npx prisma db pull
Генерація моделі
На основі синхронізованої схеми, Prisma згенерує модель у файлі schema.prisma
. Ця модель визначає структуру наших даних і операції, які можна з ними виконувати.
Створення REST API
Інсталяція Express.js
Для розробки REST API ми скористаємося Express.js, популярним фреймворком для створення веб-додатків на Node.js. Встановіть Express.js за допомогою такої команди:
npm install express
Імпорт Prisma та Express.js
У файлі index.js
необхідно імпортувати модель Prisma та Express.js:
const { PrismaClient } = require('@prisma/client');
const express = require('express');
Ініціалізація сервера Express.js
Тепер ініціалізуємо сервер Express.js:
const app = express();
Розробка маршрутів
Наступним кроком є визначення маршрутів для нашого REST API. Ми створимо маршрути для:
- отримання всіх постів,
- створення нового посту,
- отримання конкретного посту,
- редагування посту та
- видалення посту:
// Отримання всіх постів
app.get('/posts', async (req, res) => {
const posts = await prisma.post.findMany();
res.json(posts);
});
// Створення нового посту
app.post('/posts', async (req, res) => {
const post = await prisma.post.create({
data: req.body,
});
res.json(post);
});
// Отримання конкретного посту
app.get('/posts/:id', async (req, res) => {
const post = await prisma.post.findUnique({
where: {
id: parseInt(req.params.id),
},
});
res.json(post);
});
// Оновлення посту
app.put('/posts/:id', async (req, res) => {
const post = await prisma.post.update({
where: {
id: parseInt(req.params.id),
},
data: req.body,
});
res.json(post);
});
// Видалення посту
app.delete('/posts/:id', async (req, res) => {
const post = await prisma.post.delete({
where: {
id: parseInt(req.params.id),
},
});
res.json(post);
});
Запуск сервера
Запускаємо наш сервер Express.js:
app.listen(3000, () => {
console.log('Сервер працює на порту 3000');
});
Підсумки
Ми успішно створили REST API за допомогою Prisma та PostgreSQL. Тепер ми можемо легко взаємодіяти з базою даних і створювати динамічні веб-додатки. Prisma спрощує роботу з базами даних, забезпечуючи безпечний та ефективний доступ до даних, а Express.js надає нам потужний інструмент для створення веб-серверів.
Ця комбінація інструментів є дуже ефективною для розробки надійних та масштабованих веб-додатків.
Поширені запитання
Що таке REST API?
REST API (Representational State Transfer Application Programming Interface) — це архітектурний підхід до створення веб-сервісів, який забезпечує передачу даних між клієнтами та серверами.
Що таке Prisma?
Prisma – це ORM інструмент, який спрощує взаємодію з реляційними базами даних, зокрема PostgreSQL, шляхом відображення об’єктів на реляційні структури даних.
Що таке Express.js?
Express.js є популярним фреймворком для розробки веб-додатків на Node.js.
Які переваги використання Prisma та Express.js для розробки REST API?
Використання Prisma та Express.js має ряд переваг:
Простота | Prisma робить роботу з базами даних простішою, забезпечуючи безпечний та ефективний доступ. Express.js надає інструменти для створення веб-серверів. |
Гнучкість | Обидва інструменти є гнучкими та дозволяють налаштовувати REST API під потреби розробника. |
Масштабованість | Prisma та Express.js підходять для розробки масштабованих додатків, здатних обробляти великі обсяги запитів і даних. |
Чи потрібні певні попередні знання для роботи з Prisma та Express.js?
Для ефективного використання Prisma та Express.js рекомендується мати базові знання JavaScript, Node.js, SQL та розуміння принципів RESTful API.
Чи є альтернативи Prisma та Express.js?
Так, існують альтернативи, такі як Sequelize, TypeORM та Koa.js.
Де можна отримати додаткову інформацію про Prisma та Express.js?
Ви можете ознайомитися з документацією Prisma тут і Express.js тут. Також можна приєднатися до спільнот Prisma тут та Express.js тут.