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.