PostgREST és un servidor web que converteix una base de dades PostgreSQL directament en una API RESTful
On this page
Introducció
PostgREST és un servidor web que converteix una base de dades PostgreSQL directament en una API RESTful. Les restriccions estructurals i els permisos de la base de dades determinen els punts finals i les operacions de l’API.
Entorn de treball
Base de dades
Executa una base de dades postgres:
Crea una base de dades per a la API:
El primer que fem és crear un esquema amb nom per als objectes de la base de dades que s’exposaran a l’API.
;La nostra API tindrà un punt final, /todos, que vindrà d’una taula.
.todos (
id serial primary key,
done boolean not null default false,
task text not null,
due timestamptz
);
insert into api.todos (task) values
('Menjar una poma'), ('Meditar una estona');A continuació, feu un rol per utilitzar-lo per a sol·licituds web anònimes. Quan arriba una sol·licitud, PostgREST canviarà a aquesta funció a la base de dades per executar consultes.
create role web_anon nologin;
usage on schema api to web_anon;
select on api.todos to web_anon;El rol web_anon té permís per accedir als objectes de l’esquema api i per llegir les files de la taula todos.
És una bona pràctica crear un rol dedicat per connectar-se a la base de dades, en lloc d’utilitzar el rol postgres altament privilegiat.
Així que ho farem, anomenarem el rol authenticator i també li donarem la possibilitat de canviar al rol web_anon:
create role authenticator noinherit login password 'password';
web_anon to authenticator;Ara sortiu de psql; és hora d’iniciar l’API!
\q
API
Executa PostgREST:
En aquest enllaç tens més paràmetres de configuració: Configuration
Obriu un terminal nou (deixant obert el que s’està executant PostgREST dins).
Prova de fer una sol·licitud HTTP per a todos.
Amb els permisos de rol actuals, les sol·licituds anònimes tenen accés només de lectura a la taula todos.
Si intentem afegir un nou “todo”, no podem_
La resposta és 401 no autoritzada.