Як створити REST API з Prisma та PostgreSQL

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 тут.