Jak vytvořit REST API s Prisma a PostgreSQL

Jak vytvořit REST API s Prisma a PostgreSQL

Úvod

REST API (Representational State Transfer API) je typ webového rozhraní, které umožňuje komunikaci mezi dvěma počítačovými systémy pomocí protokolů protokolu přenosu hypertextu (HTTP). REST API se často používají pro vývoj webových aplikací, mobilních aplikací a dalších softwarových systémů, které potřebují přistupovat k datům nebo je měnit na vzdáleném serveru.

PostgreSQL je výkonný a oblíbený relační systém pro správu databází, který je známý svou spolehlivostí, škálovatelností a bohatou sadou funkcí. Prisma je moderní a uživatelsky přívětivý nástroj pro ORM (mapování objekto-relačního vztahu), který usnadňuje interakci mezi aplikací a databází PostgreSQL.

V tomto článku se dozvíte, jak vytvořit REST API pomocí Prismy a PostgreSQL. Budeme používat Node.js jako webový framework a Express.js jako HTTP server. Tento tutoriál předpokládá základní znalosti Node.js, Express.js, Prismy a PostgreSQL.

Nastavení projektu

1. Vytvořte nový adresář projektu: Otevřete terminál nebo příkazový řádek a vytvořte nový adresář pro svůj projekt API.
2. Inicializujte projekt Node.js: Přejděte do adresáře projektu a inicializujte nový projekt Node.js spuštěním následujícího příkazu:


npm init -y

3. Nainstalujte Prisma: Nainstalujte Prismu do svého projektu pomocí správce balíčků Node.js, npm:

  Oprava Microsoft Store neinstaluje aplikace


npm install prisma --save-dev

4. Nainstalujte Express.js: Nainstalujte Express.js, populární webový framework pro Node.js:


npm install express

5. Vytvořte konfigurační soubor Prisma: Vytvořte nový soubor s názvem prisma.schema v kořenovém adresáři projektu. Tento soubor bude obsahovat schéma vaší databáze PostgreSQL.

Vytvoření schématu databáze

Schéma databáze definuje strukturu a vztahy tabulek a sloupců v databázi. Pro tento tutoriál vytvoříme jednoduché schéma se třemi tabulkami: User, Post a Comment.


// prisma.schema

datasource db {
provider = "postgresql"
url = "postgresql://postgres:mypassword@localhost:5432/mydatabase"
}

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

model User {
id Int @id @default(autoincrement())
username String @unique
email String @unique
}

model Post {
id Int @id @default(autoincrement())
title String
content String
authorId Int
author User @relation(fields: [authorId], references: [id])
}

model Comment {
id Int @id @default(autoincrement())
content String
postId Int
authorId Int
post Post @relation(fields: [postId], references: [id])
author User @relation(fields: [authorId], references: [id])
}

Spuštění migrace databáze

Nyní, když jsme definovali schéma databáze, můžeme spustit migraci databáze, abychom vytvořili tabulky a sloupce v databázi PostgreSQL.

1. Spusťte terminál: Otevřete terminál nebo příkazový řádek a přejděte do adresáře projektu.
2. Spusťte migrační příkaz Prisma: Spusťte následující příkaz pro generování a použití migrací databáze:


npx prisma migrate dev

Tento příkaz vytvoří tabulky a sloupce definované ve schématu prisma.schema.

Vytvoření REST API

Nyní, když máme nastavenou databázi, můžeme začít vytvářet REST API pomocí Express.js.

1. Vytvořte soubor serveru: Vytvořte nový soubor s názvem server.js v kořenovém adresáři projektu. Tento soubor bude obsahovat kód serveru Express.js.
2. Importujte potřebné moduly: Na začátek souboru server.js importujte Express.js a klienta Prisma, který byl generován během migrace databáze:

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

const app = express();
app.use(express.json());

const prisma = new PrismaClient();

3. Vytvoření tras CRUD: Následující úryvky kódu definují trasy CRUD (Create, Read, Update, Delete) pro model User:

javascript
// Create a new user
app.post('/users', async (req, res) => {
const newUser = await prisma.user.create({
data: req.body,
});

res.status(201).json(newUser);
});

// Get all users
app.get('/users', async (req, res) => {
const allUsers = await prisma.user.findMany();

res.json(allUsers);
});

// Get a single user by ID
app.get('/users/:id', async (req, res) => {
const user = await prisma.user.findUnique({
where: {
id: parseInt(req.params.id),
},
});

res.json(user);
});

// Update a user by ID
app.put('/users/:id', async (req, res) => {
const updatedUser = await prisma.user.update({
where: {
id: parseInt(req.params.id),
},
data: req.body,
});

res.json(updatedUser);
});

// Delete a user by ID
app.delete('/users/:id', async (req, res) => {
await prisma.user.delete({
where: {
id: parseInt(req.params.id),
},
});

res.status(204).end();
});

Spuštění serveru

Nyní, když máme definované trasy API, můžeme spustit server Express.js:

javascript
app.listen(3000, () => {
console.log('Server listening on port 3000');
});

Závěr

V tomto článku jsme se naučili, jak vytvořit REST API s Prismou a PostgreSQL. Pokryli jsme nastavení projektu, vytvoření schématu databáze, provedení migrace databáze, vytvoření REST API s trasami CRUD a spuštění serveru.

Prisma je výkonný nástroj pro ORM, který zjednodušuje interakci s databází PostgreSQL a umožňuje nám soustředit se na vývoj logiky naší aplikace. Tento tutoriál poskytuje solidní základ pro vytváření robustních a efektivních REST API s Prismou a PostgreSQL.

Časté dotazy

1. Co je REST API?
REST API je typ webového rozhraní, které umožňuje komunikaci mezi dvěma počítačovými systémy pomocí protokolů HTTP.

2. Co je PostgreSQL?
PostgreSQL je výkonný a oblíbený relační systém pro správu databází, který se vyznačuje spolehlivostí, škálovatelností a bohatou sadou funkcí.

3. Co je Prisma?
Prisma je moderní a uživatelsky přívětivý nástroj pro ORM, který usnadňuje interakci mezi aplikací a databází PostgreSQL.

4. Jaké jsou výhody používání Prismy s PostgreSQL?
Prisma zjednodušuje interakci s databází PostgreSQL a umožňuje vývojářům soustředit se na vývoj logiky své aplikace. Zajišťuje také typovou bezpečnost a automatickou validaci dat.

5. Jak mohu hostovat své REST API?
Existuje mnoho způsobů, jak hostovat REST API, včetně cloud computing platforem, tradičních virtuálních serverů a dokonce i fyzických serverů.

6. Jak mohu zabezpečit své REST API?
Existuje mnoho způsobů, jak zabezpečit REST API, včetně ověřování, autorizace, šifrování a omezování rychlosti.

7. Jak mohu otestovat své REST API?
Existuje mnoho nástrojů a technik pro testování REST API, včetně nástrojů pro testování jednotek, integrační testy a testovací API.

8. Jak mohu sledovat a logovat své REST API?