Sobes.tech
Middle

Quels sont les principes de REST ?

sobes.tech IA

Réponse de l'IA

Il existe les principes suivants de REST:

  • Architecture client-serveur: Séparation des responsabilités entre le client (consommateur du service) et le serveur (fournisseur du service). Cela favorise la portabilité du code client et la scalabilité du serveur.
  • Sans état (Stateless): Chaque requête du client au serveur doit contenir toutes les informations nécessaires pour que le serveur puisse la traiter. Le serveur ne conserve pas l'état du client entre les requêtes.
  • Cacheable: Le serveur peut indiquer explicitement si les données peuvent être mises en cache par le client ou par des couches intermédiaires. Cela améliore la performance et la scalabilité.
  • Interface uniforme: La plus importante, comprenant quatre sous-principes:
    • Identification des ressources: Les ressources sont identifiées par des URI uniques.
    • Manipulation des ressources via des représentations: Le client interagit avec les ressources en obtenant leurs représentations (par exemple, en JSON ou XML) et en envoyant de nouvelles représentations pour modifier l'état de la ressource.
    • Messages auto-descriptifs: Chaque message contient suffisamment d'informations pour que le destinataire comprenne comment le traiter. Des en-têtes HTTP standard sont utilisés.
    • Hypermedia as the Engine of Application State (HATEOAS): Le client doit trouver des informations sur les actions disponibles et les transitions possibles entre les états de l'application à partir de liens hypermedia intégrés dans les représentations des ressources.
  • Système en couches: L'architecture peut être organisée en couches intermédiaires (par exemple, proxies, caches, passerelles) à travers lesquelles passent les requêtes et réponses. Le client ne sait pas s'il communique directement avec le serveur final ou via des couches intermédiaires.
  • Code à la demande (optionnel): Le serveur peut étendre temporairement la fonctionnalité du client en transmettant du code exécutable (par exemple, JavaScript). Ce principe est optionnel pour la conformité à REST.