"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Guide des conventions de conception et de dénomination des API REST

Guide des conventions de conception et de dénomination des API REST

Publié le 2024-11-06
Parcourir:750

Guide to REST API Design and Naming Conventions

Concevoir efficacement des API RESTful est crucial pour créer des systèmes évolutifs, maintenables et faciles à utiliser. Bien que certaines normes existent, beaucoup ne sont pas des règles strictes mais plutôt des bonnes pratiques pour guider la conception des API. Un modèle architectural largement utilisé pour les API est MVC (Model-View-Controller), mais il ne couvre pas à lui seul les aspects les plus fins de la conception des API, tels que la dénomination et la structure. Dans cet article, nous passerons en revue les directives essentielles pour structurer les API REST.

  1. Conventions de dénomination et conception orientée ressources Les API sont souvent définies autour de ressources qui représentent des entités de votre système, telles que des « utilisateurs », des « produits » ou des « commandes ». Une ressource peut être un élément unique ou une collection, et l'API doit fournir un moyen intuitif et clair d'interagir avec ces ressources.

Principes clés :
Orienté ressources : concevez vos API autour des ressources, et non des actions. Les ressources doivent être considérées comme des noms et non comme des verbes. Par exemple:

/users pour accéder à la collection d'utilisateurs.
/users/{userId} pour accéder à un utilisateur spécifique.
Cohérence : l'API doit être intuitive. Si un utilisateur peut récupérer une liste de ressources à partir de /users, il doit s'attendre à pouvoir récupérer des ressources individuelles en ajoutant un identifiant : /users/{userId}.

Collection ou ressource unique :

Une collection de ressources est représentée par un nom pluriel : /users, /products.
Une seule ressource est représentée en ajoutant l'identifiant unique de cette ressource : /users/{userId}, /products/{productId}.

  1. Les méthodes HTTP définissent l'action, pas l'URI L'action effectuée (qu'il s'agisse de récupérer des données, de créer de nouvelles entrées ou de mettre à jour des données existantes) ne doit pas être intégrée dans l'URI. Au lieu de cela, la méthode HTTP détermine l'action.

Méthodes HTTP courantes et leurs cas d'utilisation :
GET : récupère les données du serveur.

Exemple : GET /products renvoie une liste de tous les produits.
Exemple : GET /users/{userId} récupère l'utilisateur avec l'ID utilisateur spécifié.
POST : Créez une nouvelle ressource sur le serveur.

Exemple : POST /users crée un nouvel utilisateur.
PUT : Remplacer une ressource existante par de nouvelles données (mise à jour complète).

Exemple : PUT /users/{userId} remplace entièrement les données de l'utilisateur par de nouvelles données.
PATCH : Mettre à jour partiellement une ressource existante (mise à jour partielle).

Exemple : PATCH /users/{userId} met à jour uniquement les attributs spécifiés, tels qu'un numéro de téléphone.
DELETE : Supprimer une ressource.

Exemple : DELETE /users/{userId} supprime l'utilisateur avec l'ID utilisateur spécifié.

  1. Apatridie dans REST Les API REST doivent être sans état, ce qui signifie que chaque appel d'API doit contenir toutes les informations dont le serveur a besoin pour traiter la demande. Cela garantit que chaque demande est autonome et ne dépend pas des demandes précédentes.

Exemple : lors d'une requête GET pour récupérer les détails de l'utilisateur, la requête doit inclure le jeton d'autorisation requis, même si une requête précédente a déjà authentifié l'utilisateur. Ceci est essentiel dans les systèmes distribués, où différentes requêtes peuvent atteindre différents serveurs.

  1. Évitez le stockage de données spécifiques au serveur Aucune requête API ne doit reposer sur le stockage de données temporaires sur un serveur spécifique. Dans un système distribué, les requêtes entrantes peuvent être acheminées vers n'importe quel serveur, le même résultat doit donc être obtenu quel que soit le serveur qui traite la requête. C'est pourquoi les états de session ne doivent pas être stockés sur des serveurs individuels.

Solution : pour la gestion des sessions, utilisez des systèmes de stockage centralisés ou distribués comme Redis ou un mécanisme d'authentification sans état comme JWT (JSON Web Token).

  1. Tableaux de ressources et de bases de données La conception de votre API ne doit pas comporter de mappage un à un entre les tables de base de données et les points de terminaison de l'API. L'API doit exposer des ressources logiques et significatives pouvant combiner des données provenant de plusieurs tables ou sources.

Exemple:
GET /orders/{orderId} peut récupérer les détails de la commande, en combinant les informations des tables commandes, order_items et clients.

  1. Flexibilité dans les types de données Les API REST ne sont pas limitées par les types de données ou les structures de tables de votre base de données. Vous pouvez structurer vos réponses de manière à servir au mieux les consommateurs de votre API. Bien que JSON soit le format le plus couramment utilisé, vous êtes libre de renvoyer les données dans d'autres formats comme XML ou CSV si nécessaire.

Exemple : un point de terminaison GET /reports/{reportId} peut renvoyer un rapport dans divers formats (JSON, CSV, PDF) en fonction des paramètres de requête ou des en-têtes de la requête.
Exemple de structure d'API
Pour relier tous ces principes, voici un exemple de structure d'API suivant ces bonnes pratiques :

GET /products : récupère tous les produits.
GET /products/{productId} : récupère les détails d'un produit spécifique.
POST /products : crée un nouveau produit.
PUT /products/{productId} : remplace le produit par productId.
PATCH /products/{productId} : met à jour partiellement le produit.
DELETE /products/{productId} : supprime le produit.
Dans cette structure, les ressources sont clairement définies et les méthodes HTTP précisent l'action à entreprendre, garantissant une API propre et intuitive.

**Conclusion
**La conception d'API RESTful implique bien plus que la simple création de routes et la gestion de méthodes HTTP. En vous concentrant sur les ressources, en tirant parti des méthodes HTTP pour les actions et en adhérant à l'apatridie, vous créez des API intuitives, maintenables et évolutives. N'oubliez pas que les API doivent être flexibles et indépendantes des structures de bases de données spécifiques, ce qui permet une plus grande adaptabilité à mesure que votre système se développe.

Le respect de ces conventions garantit que la conception de votre API est à la fois efficace et conviviale, ce qui améliore en fin de compte l'expérience des développeurs et des consommateurs de votre API.

Déclaration de sortie Cet article est reproduit sur : https://dev.to/rahul_ranjan_7200/guide-to-rest-api-design-and-naming-conventions-46co?1 En cas de violation, veuillez contacter [email protected] pour supprimer il
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3