PostgREST, mettre en place une API RestFull depuis n'importe quelle base de données PostgreSQL,
Un tutoriel de Gérard Ernaelsten
Le 2019-12-17 11:04:40, par MaitrePylos, Modérateur
Bonjour,
Je vous présente un nouvel article expliquant comment mettre en place facilement une API REST au départ de n'importe quelle base de données PostgreSQL avec l'outil PostgREST:
PostgREST, mettre en place une API RestFull depuis n'importe quelle base de données PostgreSQL
En vous souhaitant une bonne lecture.
Retrouvez les meilleurs cours et tutoriels pour apprendre le SGBD PostgreSQL
Je vous présente un nouvel article expliquant comment mettre en place facilement une API REST au départ de n'importe quelle base de données PostgreSQL avec l'outil PostgREST:
PostgREST, mettre en place une API RestFull depuis n'importe quelle base de données PostgreSQL
En vous souhaitant une bonne lecture.
-
MaitrePylosModérateurBonjour,
Pour autant que le rôle définit dans la base de données permet d'activer une procédure stockée, alors celui-ci pourras exécuter.
C'est le même principe que le login que je décris dans l'article.
Votre procédure/fonction sera alors placée dans une route rpcle 13/02/2020 à 16:23 -
Anselme45Membre extrêmement actifL'article démontre comment l'API PostgREST permet de faire de la requête SQL sur une base de données postgresql à partir d'applications mobiles.
Qu'en est-il au sujet des procédures stockées?
Si l'architecture de la base de données comprend non seulement des tables mais également des procédures stockées, est-ce que l'on peut activer ces procédures stockées via l'API PostgREST ou doit-on les remplacer par une approche "requête SQL"?
Merci encore à l'auteur du tuto.le 13/02/2020 à 16:08 -
Anselme45Membre extrêmement actifMerci pour l'info...le 14/02/2020 à 15:32
-
IchCodesCandidat au ClubBonjour,
Merci pour ce tutoriel, il m'as pas mal facilité.
Cependant je me demande si cela est normal que login soit mentionné avec brain:Code : 1
2
3
4
5
6
7
8ALTER FUNCTION brain.login(text, text) OWNER TO postgres; GRANT EXECUTE ON FUNCTION brain.login(text, text) TO postgres; GRANT EXECUTE ON FUNCTION brain.login(text, text) TO PUBLIC; GRANT EXECUTE ON FUNCTION brain.login(text, text) TO anonymous;
Code : 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30CREATE OR REPLACE FUNCTION public.login( pseudo text, pass text) RETURNS basic_auth.jwt_token LANGUAGE 'plpgsql' COST 100 VOLATILE SECURITY DEFINER AS $BODY$ declare _role name; result basic_auth.jwt_token; begin -- check email and password select basic_auth.user_role(pseudo, pass) into _role; if _role is null then raise invalid_password using message = 'invalid user or password'; end if; select sign( row_to_json(r), current_setting('public.jwt_secret') ) as token from ( select _role as role, login.pseudo as pseudo, extract(epoch from now())::integer + 60*60 as exp ) r into result; return result; end; $BODY$;
Code : 1
2
3
4
5
6
7
8ALTER FUNCTION public.login(text, text) OWNER TO postgres; GRANT EXECUTE ON FUNCTION public.login(text, text) TO postgres; GRANT EXECUTE ON FUNCTION public.login(text, text) TO PUBLIC; GRANT EXECUTE ON FUNCTION public.login(text, text) TO anonymous;
Merci d'avance pour ton aide !le 19/01/2024 à 19:39 -
MaitrePylosModérateurOups bien vu.
J'ai mélangé le tuto fais pour le boulot avec celui-ci.
Tu as raison, la fonction est bien dans public.le 20/01/2024 à 13:36 -
IchCodesCandidat au ClubMerci pour ton retour ^^
Cependant j'ai un souci, quand je revoke les droits a anonymous le fait de faire une requête sans token fonctionne toujours ...
Je me suis rendu compte que le fait d'avoirCode : GRANT readall TO anonymous;
Comment je peux régler cela svp ?le 21/01/2024 à 20:19 -
IchCodesCandidat au ClubJ'ai fini par trouver.
Dans le tutoriel on donne la possibilité à anonymous de changer de rôle :Code : GRANT readall TO anonymous;
Code : GRANT readall TO authenticator;
le 21/01/2024 à 22:02