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

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

Вступ

REST API (інтерфейс прикладного програмування передачі стану представлення) – це архітектурний стиль для створення веб-сервісів, які забезпечують передачу даних між клієнтами та серверами. REST API є популярними завдяки їх простоті, гнучкості та масштабованості.

Prisma – це інструмент моделювання ORM (відображення об’єктів на реляційні бази даних), який спрощує взаємодію з базами даних, зокрема з PostgreSQL. Prisma генерує типізований код, який забезпечує безпечний і ефективний доступ до даних.

У цій статті ми розглянемо, як створити REST API за допомогою Prisma та PostgreSQL, що дозволить нам легко працювати з базою даних і створювати динамічні веб-застосунки.

Створення моделі Prisma

Створення нового проекту

Першим кроком буде створення нового проекту Prisma. Для цього відкрийте термінал і виконайте наступну команду:

bash
npx prisma init

Відображення схеми бази даних

Далі нам потрібно відобразити схему бази даних. Увійдіть до своєї бази даних PostgreSQL і виконайте наступну команду, щоб створити нову таблицю з назвою “пости”:

sql
CREATE TABLE posts (
id SERIAL PRIMARY KEY,
title VARCHAR(255) NOT NULL,
content TEXT NOT NULL
);

Тепер поверніться до проекту Prisma та виконайте наступну команду, щоб відобразити схему бази даних:

bash
npx prisma db pull

Створення моделі

На основі відображеної схеми Prisma створить модель у файлі schema.prisma. Ця модель визначає структуру наших даних і операції, які ми можемо виконувати з ними.

Створення REST API

Встановлення Express.js

Для створення нашого REST API ми використовуватимемо Express.js, популярний фреймворк для створення веб-застосунків на Node.js. Встановіть Express.js за допомогою наступної команди:

bash
npm install express

Імпорт моделі Prisma та Express.js

У файлі index.js імпортуємо модель Prisma та Express.js:

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

Ініціалізація сервера Express.js

Ініціалізуємо сервер Express.js:

javascript
const app = express();

Створення маршрутів

Далі створимо маршрути для наших REST API. Ми визначимо маршрути для отримання всіх постів, створення нового посту, отримання конкретного посту, оновлення посту та видалення посту:

javascript
// Отримання всіх постів
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:

javascript
app.listen(3000, () => {
console.log('Сервер запущено на порту 3000');
});

Висновок

Ми успішно створили REST API за допомогою Prisma та PostgreSQL. Тепер ми можемо легко взаємодіяти з базою даних і створювати динамічні веб-застосунки. Prisma спрощує роботу з базами даних, забезпечуючи безпечний і ефективний доступ до даних, а Express.js надає нам потужний фреймворк для створення веб-серверів.

Ця комбінація інструментів є потужною, що дозволяє нам розробляти надійні та масштабовані веб-застосунки.

Часті запитання

Що таке REST API?

REST API (інтерфейс прикладного програмування передачі стану представлення) – це архітектурний стиль для створення веб-сервісів, які забезпечують передачу даних між клієнтами та серверами.

Що таке Prisma?

Prisma – це інструмент моделювання ORM (відображення об’єктів на реляційні бази даних), який спрощує взаємодію з базами даних, зокрема з PostgreSQL.

Що таке Express.js?

Express.js – це популярний фреймворк для створення веб-застосунків на Node.js.

Які переваги використання Prisma та Express.js для створення REST API?

Використання 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?

Так, існують альтернативи Prisma та Express.js, наприклад, Sequelize, TypeORM та Koa.js.

Де я можу отримати додаткову допомогу з використання Prisma та Express.js?

Ви можете звернутися до документації Prisma тут та Express.js тут, або приєднатися до спільноти Prisma тут та Express.js тут.