Quelle stratégie pour démarrer la conception d'un Webservice avec Flutter

Bonjour à tous !

Développeur sous Unreal Engine pour le loisir indoor (à priori rien à voir), j’ai rejoints la communauté afin d’apprendre à concevoir mes propres webservices et outils de pilotage de mes jeux. Après avoir enchainé plusieurs cours sur Flutter et Dart, j’aimerais vous poser une question stratégique (de débutant). En effet, je me suis mis en tête de créer un webservice en flutter / mysql (sans hébergement service) qui soit accessible aux clients. Néanmoins, je trouve peu de ressources mysql pour le web sur pub.dev… Ma question est la suivante : est-ce la bonne approche ? est-ce possible ? faut-il un relais en php ? ou dois-je plonger dans Directus pour créer les endpoints (je préfère poser la question avant de suivre le cours) !

Merci beaucoup !

Bonjour @StuntmanMike et merci pour ton message.

Il est probablement nécessaire de clarifier que Flutter ne peut pas être utilisé pour créer un webservice, mais uniquement des applications graphiques (iPhone, Android, macOS, Windows, Linux ou Web). Un webservice sert uniquement à manipuler des données via une API donc Flutter ne te sera d’aucune utilité ici.
Il est possible par contre de créer un webservice en Dart, mais c’est peu répandu.

Peut être que ce que tu entends par webservice, c’est un site web permettant à tes clients de manipuler les données et d’administrer leurs apps ? Dans ce cas je pense que le terme de backoffice serait le bon.

Dans tous les cas, je reste persuadé qu’à l’heure actuelle, Directus est une des meilleures solutions pour créer rapidement un webservice sans coder qui se base de façon automatique sur une base de données (MySQL par exemple).
Libre à toi ensuite de créer une app Flutter qui va consommer ce webservice via son API.

D’ailleurs le premier chapitre du cours Directus te permettra de mieux comprendre la notion de webservice et comment il s’articule au sein d’une solution logicielle.
C’est un cours assez rapide à suivre en plus :wink:

1 « J'aime »

Merci de ta réponse ! J’ai effectivement mal interprété (ou voulu entendre ce qui m’arrangerais) suite à ta vidéo sur la possibilité de créer des backoffice avec flutter (Youtube).

J’avais en outre parcours le cours sur Directus, mais je pensais qu’il était nécessaire que les utilisateurs passent par l’interface de Directus (ce qui n’est pas possible dans mon cas puisque je dois entrer dans une logique d’interface déjà imaginée).

Peux-tu me confirmer que l’API de Directus permettra, via une app web Flutter, d’insérer des données, modifier, ajouter des utilisateurs etc ?

Merci à toi !
Mickael.

Bonjour @StuntmanMike,

Pour avoir pas mal joué avec l’API directus, je peux te confirmer que oui il est possible de créer/modifier/supprimer des items ou utilisateurs.

L’API est très complète et permet même de gérer les flows, les dossiers et fichiers etc…

Concernant la gestion des utilisateurs, si l’utilisateur authentifié a les droits ajout sur la table directus_users il pourra créer des utilisateurs => la méthode la plus safe et de passer par l’invitation d’un nouvel utilisateur Users | Directus Docs.

Tu pourra également modifier le contenu du mail d’invitation (si tu t’auto-héberge) en ajoutant un template (attention, a ce jour le sujet du mail n’est pas modifiable et est en anglais), tu pourras également modifier le lien d’inscription pour le faire pointer vers ton App en l’ajoutant dans la config directus (USER_INVITE_URL_ALLOW_LIST).

Je n’ai pas testé l’inscription publique d’utilisateurs, qui n’est a ce jour pas prise en charge sauf à donner les droit d’écriture sur la table directus_users au role public, ce qui est à mon avis une hérésie, peut être qu’en jouant avec un Token unique sur un utilisateur dédié à l’inscription de nouveau membres ?
Je n’ai également pas testé l’authentification/inscription OpenID.

Pour l’utilisation avec Flutter @mbritto a créé une Libraire GitHub - maxbritto/directus_api_manager: Dart library to communicate with a Directus REST API (que je n’ai pas testée, j’ai déjà la mienne), ou sinon une librairie durectus sur pub.dev est disponible, à tester.

Merci beaucoup pour ta réponse !