Développement d'API REST - quelle est l'approche Code First?

Dans cet article, nous continuerons à nous familiariser avec le développement de l'API REST et à examiner l'approche Code-First.

Développer une bonne API REST est important pour avoir de bons microservices. L'approche Code-First se concentre sur la génération d'un contrat à partir de code. Est-ce la meilleure approche possible?


Vous apprendrez


  • Quelle est l'approche Code-First pour développer une API REST?
  • Quels sont les avantages de l'approche Code-First?
  • Quels sont les inconvénients de l'approche Code-First?
  • Quand utilisez-vous l'approche Code-First?

API REST


Il s'agit du quatrième article d'une série d'articles sur l'API REST:


Qu'est-ce que l'approche Code-First?


Chaque fois que vous développez un service, tel qu'une API REST ou une API SOAP, vous pouvez choisir l'une des deux approches:

  • Code d'abord et générer un contrat à partir du code
  • Contract First et développement de code basé sur un contrat

Commençons par un exemple rapide pour Code First.

Exemple de l'API REST de Spring Boot Code First


Nous développons un service Web RESTful à l'aide de Spring Boot Framework pour générer l'API. Par exemple, dans l'API retrieveAllUsers (), nous ouvrons l'URI « / users » et
nous renvoyons tous les utilisateurs (ressource / utilisateurs ),
appeler la méthode de service.

Lorsque nous accédons à cette URL, nous renvoyons tous les utilisateurs:


D'autres méthodes de service sont définies de manière similaire, chacune ayant son propre URI. Dans cet exemple, nous prenons le code et générons de la documentation à partir de celui-ci. Cette documentation décrit comment l'utilisateur peut utiliser le service. Pour ce faire, nous utilisons le format de documentation Swagger:



Swagger nous permet de générer de la documentation à partir du code. Par exemple, voici ce que Swagger génère pour demander à tous les utilisateurs:



Il affiche le type de message de réponse que nous recevons et l'état de réponse qui l'accompagne. Vous pouvez même appeler ce service depuis Swagger pour obtenir une réponse:



Vous pouvez également envoyer une requête POST à " / users ":



Swagger nous dira comment structurer le message de demande et spécifier les formats de champs individuels qu'il contient. Il vous indiquera également le type de réponse que vous recevrez, ainsi que le code de réponse. Ce que Swagger génère à partir du code s'appelle un contrat .

Avantages de Code First


Les principaux avantages de cette approche:

  • Contrats avec un minimum d'efforts : générer un contrat ne nécessite pas d'efforts supplémentaires. Ce n'est qu'un sous-produit du développement de services, car il peut être généré automatiquement à partir du code.
  • Synchronisation du code et du contrat : puisque le contrat est généré à partir du code, ils sont toujours synchronisés entre eux

Inconvénients de Code First


Les inconvénients de cette approche sont les suivants:

Pas de développement parallèle


Un producteur de services et des consommateurs de services ne peuvent pas se développer en parallèle. Vous devez d'abord développer un service, puis générer un contrat, et seulement après cela, vous pouvez écrire un code de consommation qui respectera le contrat. Sans comprendre le contrat, le consommateur ne peut pas être développé.

Aucun objectif pour les équipes


Étant donné que le contrat ne peut être connu avant le développement du service, il n'y a aucun intérêt pour les différents acteurs du développement. Par conséquent, il y a toutes les chances que les directions soient déviées et que des changements inutiles soient apportés, ce qui entraînera un gaspillage d'efforts.

Pas de compatibilité multiplateforme


Sur certaines anciennes plates-formes, il n'est pas si facile de générer un contrat à partir de code. Par conséquent, une incompatibilité entre les plates-formes se produit souvent pour les contrats générés.

Sur cette question, il y a une vidéo d'auteur.

Résumé


Dans cet article, nous avons exploré l'approche Code First pour créer une API REST. Bien que l'approche basée sur le code soit efficace du point de vue du développeur, elle est confrontée à de sérieux problèmes en ce qui concerne le développement conjoint d'un fournisseur et d'un consommateur.

Lecture complémentaire


Développement d'API: Design-First ou Code-First?
Comment développer un service Web RESTful dans l'API Web ASP.NET

Source: https://habr.com/ru/post/fr483322/


All Articles