Architecture
Il existe plusieurs manières de structurer une application web. Pendant longtemps, la plupart des applications étaient monolithiques , c’est-à-dire qu’un seul bloc de code gérait à la fois l’interface utilisateur, la logique métier et la base de données.
Aujourd’hui, une approche plus moderne consiste à séparer clairement le front-end et le back-end, en utilisant une API (Application Programming Interface) qui va agir comme un intermédiaire.
Cette séparation offre plusieurs avantages :
- Flexibilité : L’API peut être utilisée par différentes interfaces (site web, application mobile, etc.).
- Scalabilité : Il est plus facile de faire évoluer l’application en améliorant séparément le front-end et le back-end.
- Sécurité : L’accès aux données est mieux contrôlé, car seul le back-end y a directement accès.
Dans Quizine, le front-end communique donc avec une API dédiée qui centralise toute la logique applicative.
Le fonctionnement global de l’application
Côté utilisateur (frontend) :
- L’utilisateur navigue sur l’application via un navigateur web.
- Il interagit avec l’interface (choix des quiz, réponses aux questions).
- Le frontend envoie des requêtes à l’API et affiche les résultats.
Côté API (backend) :
- L’API reçoit la requête et récupère les données depuis la base de données.
- Elle renvoie les informations demandées sous forme de JSON.
- Le frontend traite ces données et les affiche à l’utilisateur.
Côté base de données :
- Les quiz, questions et scores sont stockés en base de données.
- L’API y accède pour récupérer ou enregistrer des informations.
Quel type d’API pour Quizine ?
Il existe plusieurs manières de concevoir une API, chacune ayant ses propres avantages et inconvénients. Les deux principales approches sont :
- Les API RESTful : Basées sur le protocole HTTP, elles utilisent des requêtes classiques et renvoient généralement des données au format JSON. C’est le modèle le plus répandu aujourd’hui.
- Les API GraphQL : Une approche plus flexible où le client peut spécifier précisément quelles données il souhaite récupérer, évitant ainsi les surcharges inutiles.
Pour Quizine, le choix s’est porté sur une API RESTful. Cette approche est plus simple à mettre en place et bien adaptée aux besoins du projet. Elle permet de structurer facilement les endpoints et de tirer parti des nombreux outils existants pour la gestion des requêtes et de l’authentification.
Une API REST suit les principes suivants :
- Ressources : Chaque donnée manipulée par l’API est une ressource (un quiz, une question, un score…).
- Actions : Les actions possibles sur ces ressources sont standardisées (
GET
pour lire,POST
pour créer,PUT
pour modifier,DELETE
pour supprimer). - État : L’API doit être sans état, c’est-à-dire que chaque requête doit contenir toutes les informations nécessaires à son traitement.
Le format JSON sera privilégié pour l’échange de données entre le front-end et le back-end, assurant ainsi une communication fluide et standardisée.