-
L'admin est aujourd'hui composé des frameworks : Next.js et Hasura. L'objectif est d'utiliser Hasura comme API et ne pas avoir d'API à gérer de notre coté. Il y a cependant actuellement une API mise en place sur Next.js pour gérer :
La fusion de l'outil de contrib dans l'admin va apporter des règles métiers plus complexes que ce qui est actuellement géré par l'admin. L'idée de cette discussion est de choisir la meilleure approche pour voir l'implémentation des contributions et pour la suite sur l'outil d'admin. Voici la liste des approches identifiées : Logique métier dans le Next.jsDans cette approche, on va gérer nos règles métiers dans le frontend au niveau des composants. Exemple: Logique métier dans HasuraDans cette approche, on a 2 possibilités : le gérer via PL/SQL ou via les actions/events d'Hasura. PL/SQLL'idée est d'utiliser une procédure stockée en SQL que l'on va mettre à disposition via le GraphQL (https://hasura.io/docs/latest/schema/postgres/custom-functions/) Exemple: Actions/EventsL'idée est d'utiliser les fonctionnalités Actions/Events de Hasura. Une action va permettre de mettre à disposition une entrée dans GraphQL avec des custom inputs. Elle va ensuite transformé cette requête pour appeller une API REST avec un JSON en entrée. L'API se charge ensuite de faire la logique métier et de retourner le résultat. hasura se charge de traduire le résultat en GraphQL à l'appelant. Exemple: Logique métier dans une APIL'idée est d'utiliser des APIs en amont d'Hasura. Chaque API sera responsable de faire le call sur Hasura et d'inclure la logique métier si besoin. Exemple: |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments 1 reply
-
Logique métier dans le Next.jsCette option ne semble pas être la plus idéale. On risque d'avoir des règles métiers fortement lié à des composants graphiques. De plus, les tests sur les règles métierr sont complexes à mettre en place. |
Beta Was this translation helpful? Give feedback.
-
Logique métier dans Hasura : PL/SQLCette option demande une montée en compétence en PL/SQL par l'équipe et ajoute un nouveau langage dans le projet. Sa mise en place est bien supporté par Hasura même si moins poussé que les Actions. Cela demande aussi une mise en place des tests sur du PL/SQL, ce qui n'est pas en place sur nos projets. |
Beta Was this translation helpful? Give feedback.
-
Logique métier dans une APIAujourd'hui, on utilise urql pour effectuer nos requêtes avec GraphQL fourni par Hasura. Ajouter une couche API demande à revoir toute l'implémentation actuelle pour utiliser des APIs REST en json à la place de GraphQL. Cela demanderait aussi des APIs pour des simples select/update pour éviter le mélange entre call REST et GraphQL. |
Beta Was this translation helpful? Give feedback.
-
Logique métier dans Hasura: Actions/EventsCette solution est la plus proche de ce que l'on a actuellement. On garderait notre API urql pour faire les requêtes dans le front. On utiliserait le GraphQL fourni par Hasura pour des simples update/select. On passerait sur une Actions pour des update/select demandant des règles métiers. Cette solution semble la plus adaptée dans l'architecture actuelle. |
Beta Was this translation helpful? Give feedback.
Logique métier dans Hasura: Actions/Events
Cette solution est la plus proche de ce que l'on a actuellement. On garderait notre API urql pour faire les requêtes dans le front. On utiliserait le GraphQL fourni par Hasura pour des simples update/select. On passerait sur une Actions pour des update/select demandant des règles métiers.
Les tests pourraient directement tester l'API qui contient alors la logique métier.
L'envoie d'email est directement possible depuis l'API.
Cette solution semble la plus adaptée dans l'architecture actuelle.