Atelier : l'API Spam Checker
Dans cet atelier, nous allons réaliser une petite API permettant de vérifier si un email est un spam.
Le but est simple : recevoir un email depuis une requête, puis vérifier si son domaine se trouve dans un tableau de domaines considérés comme spams. Enfin, on renverra une réponse au format JSON pour indiquer aux clients le résultat de la vérification.
Nous voudrons alors consommer cette API depuis l'applications de news, afin de valider qu'un email n'est pas un spam lors d'une inscription à la newsletter.
Format de la requête
Pour requêter notre API, on décide d'utiliser la méthode POST et d'indiquer l'email à vérifier dans le corps de la requête.
Une requête pourra alors contenir ce type de données :
{ "email": "test@test.com" }
Format de la réponse
Le format de la réponse peut varier, mais nous considérerons qu'elle sera représentée ainsi :
{ "result": "ok" } // l'email n'est pas un spam
{ "result": "spam" } // l'email est un spam
Création de l'application
Pour créer une application Symfony en mode API, on n'utilisera pas l'option --webapp :
symfony new spam-checker --version=6.4
Une application de ce type inclura beaucoup moins de dépendances, par défaut. On a donc une application plus légère.
Dépendances de développement
Pour pouvoir travailler en local, on va tout de même ajouter le profiler et le maker en tant que dépendances de développement :
composer require --dev profiler maker
profiler et maker sont ici des alias pour Symfony Flex. Ils seront résolus à l'installation par Symfony Flex, qui utilisera alors les vrais noms des packages (format : vendor/package)
Résumé
Le but, schématisé, de l'application, est le suivant :
