Изградња REST API-ја са Prisma-ом и PostgreSQL-ом

Uvod

REST API (Representational State Transfer Application Programming Interface) predstavlja interfejs za programiranje koji se koristi za razmenu podataka između klijenta i servera. To je široko prihvaćen standard za izgradnju savremenih veb aplikacija, zato što pruža fleksibilnost, skalabilnost i jednostavnost integracije.

U ovom tekstu ćemo se baviti time kako napraviti REST API koristeći alate Prisma i PostgreSQL. Prisma je ORM (Object-Relational Mapper) alat koji generiše tipove za pisanje sigurnog koda za pristup bazi podataka. PostgreSQL je, sa druge strane, moćan relacioni sistem za upravljanje bazama podataka, koji se često koristi u različitim aplikacijama.

Kombinovanjem Prisme i PostgreSQL-a, možete kreirati robusne i efikasne REST API-je, koji će upravljati vašim podacima i omogućiti njihovo deljenje sa spoljnim sistemima ili veb aplikacijama.

Šta je Prisma?

Prisma je ORM otvorenog koda koja povezuje programske jezike kao što su JavaScript, TypeScript i Go sa bazama podataka kao što su PostgreSQL, MySQL i SQLite. Korišćenjem deklarativnog pristupa, Prisma programerima omogućava modeliranje strukture podataka i manipulaciju istim putem Type-Safe API-ja, čime se smanjuju potencijalne greške tokom izvršavanja programa.

Šta je PostgreSQL?

PostgreSQL je relacioni sistem za upravljanje bazama podataka otvorenog koda, koji podržava SQL i nudi mnogobrojne funkcije, uključujući transakcije, konzistentnost podataka i kontrolu pristupa. Sa svojim visokim performansama i skalabilnošću, PostgreSQL je pouzdan izbor za čuvanje i upravljanje podacima u raznim aplikacijama.

Instalacija

Pre nego što počnemo, neophodno je da instaliramo Prisma i PostgreSQL na našem sistemu. U zavisnosti od operativnog sistema koji koristite, pratite zvanična uputstva za instalaciju:

Prisma
PostgreSQL

Kreiranje nove Prisma šeme

Prvi korak je kreiranje nove Prisma šeme. Koristićemo komandnu liniju kako bismo inicijalizovali novi projekat i definisali strukturu naše baze podataka.


npx prisma init

Ovo će kreirati direktorijum sa osnovnim fajlovima šeme. Otvorite fajl schema.prisma i dodajte sledeći kod kako biste definisali jednostavnu šemu baze podataka sa tabelom Post:


// Model Post
model Post {
id Int @id @default(autoincrement())
title String
content String?
published Boolean @default(false)
}

Generisanje tipova

Sada ćemo generisati TypeScript tipove na osnovu naše šeme. Ovo će nam omogućiti da koristimo type-safe API za pristup bazi podataka.


npx prisma generate

Konfiguracija baze podataka i servera

Sledeći korak je konfiguracija naše baze podataka i REST API servera. U ovom uputstvu, koristićemo Express.js kao veb framework.

Database Connection: Napravite fajl db.ts i dodajte sledeći kod kako biste se povezali sa PostgreSQL bazom podataka:

typescript
import { PrismaClient } from '@prisma/client'

const prisma = new PrismaClient()

export default prisma

Server: Napravite fajl server.ts i unesite sledeći kod kako biste definisali osnovne rute za pristup podacima:

typescript
import express from 'express'
import prisma from './db'

const app = express()

// Primer rute za dobijanje svih postova
app.get(‘/posts’, async (req, res) => {
const posts = await prisma.post.findMany()
res.json(posts)
})

// Druge rute…

app.listen(3000, () => {
console.log(Server sluša zahteve na portu 3000.)
})

Testiranje API-ja

Na kraju, možemo testirati naš REST API slanjem HTTP zahteva. Možemo koristiti alate kao što su Postman ili cURL za slanje zahteva na našu lokalnu URL adresu (npr. http://localhost:3000/posts).

Ako sve funkcioniše kako treba, trebalo bi da vidimo izlaz u JSON formatu sa rezultatima iz baze podataka.

Zaključak

Integracija Prisme i PostgreSQL-a omogućava nam da brzo i efikasno kreiramo REST API-je. Prisma obezbeđuje type-safe pristup bazi podataka, dok PostgreSQL nudi pouzdane funkcije za skladištenje i upravljanje podacima.

Korišćenjem snage oba ova alata, programeri mogu izgraditi visokoperformantne i skalabilne REST API-je, koji ispunjavaju specifične zahteve njihovih aplikacija. Brojne mogućnosti REST API-ja omogućavaju nam da povežemo različite sisteme, automatizujemo zadatke i izložimo podatke spoljnim klijentima.

Često postavljana pitanja

1. Koja je prednost korišćenja Prisme umesto ručnog pisanja SQL upita?

Prisma nudi deklarativni interfejs za interakciju sa bazom podataka, koji je sigurniji i lakši za održavanje od ručnog pisanja SQL upita.

2. Koji se drugi ORM-ovi mogu koristiti sa PostgreSQL-om?

Pored Prisme, postoje i drugi poznati ORM-ovi za PostgreSQL, kao što su Sequelize, TypeORM i Knex.js.

3. Kako mogu da poboljšam performanse svog REST API-ja?

Postoji više tehnika koje se mogu primeniti za poboljšanje performansi, poput keširanja, indeksiranja i optimizacije upita.

4. Kako mogu da obezbedim svoj REST API?

Sigurnosne mere kao što su autentifikacija, autorizacija i validacija unosa ključne su za zaštitu vašeg API-ja od potencijalnih napada.

5. Koji su uobičajeni scenariji korišćenja REST API-ja?

REST API-ji se koriste u različitim aplikacijama, kao što su dobijanje i postavljanje podataka, komunikacija između mikrousluga i automatizacija zadataka.

6. Koje su prednosti korišćenja PostgreSQL-a kao baze podataka?

PostgreSQL nudi visoke performanse, skalabilnost, transakcije i napredne karakteristike kao što su upsert i particionisanje tabela.

7. Kako mogu da primenim izmene u svojoj šemi baze podataka?

Prisma pruža komandu prisma migrate koja se može koristiti za automatsku primenu promena šeme u vašoj bazi podataka.

8. Kako mogu da prilagodim zahteve svom REST API-ju?

Express.js omogućava da kreirate prilagođene rute, koje mogu da obrađuju specifične zahteve, kao što su zahtevi za ažuriranje ili brisanje podataka.