40 questions et réponses fréquemment posées lors des entretiens avec l’API REST [2023]

Une API signifie Application Programming Interface. Il sert de passerelle permettant aux applications d’accéder à certaines ressources à partir d’autres applications.

L’avantage d’utiliser une API est de donner accès à des applications tierces afin qu’elles ne puissent pas accéder à l’intégralité des données de votre application. Ils ne peuvent accéder qu’aux données que vous exposez via votre API.

L’application ou un utilisateur qui souhaite accéder aux données est appelé client, et l’application qui sert les données est appelée serveur.

Les API sont largement utilisées aujourd’hui dans toutes les architectures logicielles. Si vous postulez pour un poste d’ingénieur front-end, back-end, full-stack ou réseau, on vous posera de nombreuses questions concernant les API.

Cela étant dit, explorons certaines des questions d’entretien les plus fréquemment posées sur les API REST.

Table des matières

Qu’est-ce que le repos ?

Réponse : REST est une conception architecturale qui définit certaines contraintes sur le fonctionnement des API. Les API qui suivent les principes de REST sont appelées API RESTful. REST signifie Representational State Transfer.

Ce n’est pas un protocole ou une norme ; il s’agit plutôt d’une architecture qui peut être utilisée pour implémenter des API de différentes manières.

Il offre une grande flexibilité et liberté aux développeurs, et c’est pourquoi il est largement utilisé pour développer des API. Voici quelques-uns des principes d’une architecture REST :

  • Séparation du client et du serveur : dans une API RESTful, le client ne doit pas affecter le serveur d’une autre manière que de demander des données via un URI (Uniform Resource Identifier). De la même manière, le serveur ne doit en aucun cas modifier le contenu du client.
  • Apatridie : lorsque deux demandes distinctes sont faites, elles ne se connaissent pas. En d’autres termes, les requêtes sont sans état et ne conservent pas d’état. Si une demande est satisfaite, elle se termine simplement. Chaque requête est isolée des autres requêtes.
  • Architecture en couches : le client ou le serveur ne sait pas si la demande est adressée directement à l’origine ou à une application intermédiaire. Ils ne se soucient que de la réponse à la demande.
  • Mise en cache : les données ou les réponses peuvent être mises en cache côté client et côté serveur pour améliorer les performances et l’évolutivité. S’il y a des demandes fréquentes pour une ressource particulière, la réponse à cette demande peut être mise en cache et utilisée en cas de besoin.

Quelles sont les principales caractéristiques de REST ?

Réponse : Les principales caractéristiques ou caractéristiques de REST sont :

  • Flexibilité : Vous pouvez passer d’un serveur à un autre, et cela ne changera rien car l’API enverra la même réponse pour une requête particulière. En outre, vous pouvez ajouter autant de points de terminaison que vous le souhaitez pour différents types de données.
  • Évolutivité : la mise en cache améliore l’évolutivité car les réponses sont enregistrées pour une utilisation ultérieure. Cela diminue la charge sur le serveur et réduit également la latence.
  • Autorisation : à l’aide de l’en-tête d’autorisation, vous pouvez spécifier les informations d’identification que le serveur peut utiliser pour autoriser la demande.
  • Apatridie : il s’agit de la fonctionnalité la plus importante de REST, car elle empêche les requêtes de savoir ce qui se passe avec d’autres requêtes. Les demandes sont isolées et terminées dès qu’elles sont satisfaites.

Que sont les ressources dans une architecture REST ?

Réponse : Les ressources sont des entités sur lesquelles différentes opérations sont effectuées, telles que la récupération, la mise à jour ou la suppression. Ce sont les blocs de construction de base de l’architecture REST.

Par exemple, si vous considérez une boutique de commerce électronique en ligne, les produits, les utilisateurs ainsi que les métadonnées sont considérés comme des ressources car ils peuvent être exploités. Les ressources peuvent être transférées vers une autre application via l’API.

Mentionnez quelques avantages et inconvénients d’une API REST.

Réponse : Les avantages des API REST sont les suivants :

  • C’est simple à mettre en oeuvre.
  • Les ressources peuvent être facilement manipulées.
  • Il est évolutif grâce à l’architecture client-serveur.
  • Prend en charge plusieurs types de supports de transfert de données tels que XML et JSON.

Ses inconvénients sont :

  • Vous ne pouvez pas maintenir un état entre les requêtes.
  • La véritable source d’origine de la ressource ne peut pas être connue en raison de l’architecture en couches.
  • Pas bon pour les requêtes ou demandes complexes.

Définir le modèle REST.

Réponse : Un modèle REST est un utilitaire ou un client via lequel vous pouvez accéder aux API REST dans le framework Spring. Il cache essentiellement le code passe-partout que vous devrez peut-être écrire pour demander une ressource à une API REST.

Qu’est-ce que RESTful ?

Réponse : Les API ou services RESTful sont des interfaces qui implémentent le style architectural REST (Representational State Transfer) et fonctionnent à l’aide de protocoles tels que HTTP.

Que sont les services Web RESTful ?

Réponse : Les services Web RESTful sont conçus pour fonctionner au mieux sur le Web. Le transfert d’état représentatif (REST) ​​est un style architectural qui spécifie des contraintes, telles que l’interface uniforme, l’architecture en couches et l’absence d’état, si elles sont appliquées à un service Web, induisent des propriétés souhaitables, telles que les performances et l’évolutivité, qui permettent aux services de fonctionner au mieux sur la toile.

Comment tester les services Web RESTful ?

Réponse : Pour tester un service Web RESTful, vous pouvez utiliser un client REST tel que Postman ou Thunder Client et interroger le service Web que vous souhaitez tester. Ensuite, lorsque vous obtenez une réponse, comprenez la réponse ; c’est la partie clé.

Si vous souhaitez tester une API complexe avec de nombreux points de terminaison, vous devrez peut-être décomposer les tests et effectuer des tests unitaires, des tests d’intégration, des tests de performances et des tests de bout en bout.

Mentionnez certaines fonctionnalités des services Web RESTful.

Réponse : Certaines des fonctionnalités clés des services Web RESTful sont :

  • Prise en charge de plusieurs types de médias tels que JSON et XML.
  • Évolutivité
  • Isolement du client et du serveur
  • La flexibilité

Définissez les classes de ressources racine RESTful.

Réponse : Les classes de ressources racine sont des « objets Java classiques » (POJO) qui sont annotés avec @Path ou qui ont au moins une méthode annotée avec @Path ou un indicateur de méthode de requête, tel que @GET, @POST, @PUT ou @SUPPRIMER.

Qu’est-ce qu’un URI ?

Réponse : URI signifie Uniform Resource Identifier. Il s’agit d’une séquence de caractères utilisée pour localiser ou identifier les ressources d’une API ou d’un service. Il utilise le nom ou l’emplacement de la ressource pour l’identifier, mais il ne s’appuie pas sur une méthode ou une technique particulière.

Qu’est-ce que l’apatridie dans REST ?

Réponse : L’apatridie fait référence à une contrainte appliquée à une API dans laquelle deux requêtes ne peuvent pas savoir ce qui se passe l’une avec l’autre. En d’autres termes, l’état des requêtes n’est pas maintenu. Si la demande est satisfaite, elle se termine simplement après avoir reçu une réponse.

Qu’est-ce que JAX-RS ?

Réponse : JAX-RS est une API Java qui vous permet de développer des applications en Java qui utilisent l’architecture REST. Cette API facilite le développement d’applications REST en Java.

Quelles sont les annotations clés dans l’API JAX-RS ?

Réponse : Les annotations dans JAX-RS sont utilisées par les développeurs pour décorer les classes Java afin de définir les ressources et les méthodes qui peuvent être exécutées sur ces ressources. Certaines annotations clés de l’API JAX-RS sont :

  • @GET : Il est utilisé pour effectuer des requêtes GET en HTTP.
  • @POST : Il est utilisé pour faire des requêtes POST en HTTP.
  • @Path : Il fait référence au chemin relatif d’une classe Java.
  • @QueryParam : Il fait référence aux paramètres de requête de l’URI ou de l’URL.

Quelles sont certaines fonctionnalités clés de l’API JAX-RS ?

Réponse : Les fonctionnalités de JAX-RS sont :

  • Mise en cache côté client
  • Mise en cache côté serveur
  • Personnalisation de la chaîne de requête
  • Annotations d’exécution

Comment les applications JAX-RS peuvent-elles être configurées ?

Réponse : Une application JAX-RS se compose d’au moins une classe de ressources conditionnée dans un fichier WAR. L’URI de base à partir duquel les ressources d’une application répondent aux requêtes peut être défini de deux manières :

  • Utilisation de l’annotation @ApplicationPath dans une sous-classe de javax.ws.rs.core.Application empaquetée dans le WAR
  • Utilisation de la balise servlet-mapping dans le descripteur de déploiement web.xml du WAR

Que sont JAX-WS et JAX-RS ?

Réponse : JAX-WS est une API de services Web XML Jakarta utilisée pour développer des API à l’aide du protocole SOAP (Simple Object Access Protocol), un protocole de messagerie basé sur XML.

D’autre part, JAX-RS est une API Java utilisée pour créer des services Web à l’aide de l’architecture REST.

Que sont les codes d’état HTTP ?

Réponse : Les codes d’état ne sont rien d’autre qu’un moyen de communiquer l’état de la réponse envoyée par le serveur au client. Ils sont présents dans les en-têtes de réponse envoyés par le serveur.

Le client est en mesure de déterminer si la demande a échoué ou a été satisfaite ou s’il y a un problème avec la réponse en utilisant les codes d’état.

Voici quelques codes d’état courants de HTTP : –

  • 200 – Cela signifie le mot-clé « OK ». Cela signifie que la demande a été satisfaite et que la réponse est correcte.
  • 404 – Cela signifie « Non trouvé ». Cela signifie qu’une ressource n’est pas présente sur le serveur ou qu’un point de terminaison n’existe pas.
  • 500 – Cela signifie « Erreur interne du serveur ». Cela se produit généralement lorsque le serveur ne peut pas générer la réponse correcte ou qu’une erreur n’est pas renvoyée explicitement.
  • 503 – Cela signifie « Service indisponible ». Cela signifie qu’actuellement, le serveur ne peut traiter aucune requête, probablement parce qu’il est mort ou ne fonctionne pas à cause d’une surcharge de requêtes. Cela peut également se produire lorsque le serveur est en maintenance.

Que sont les méthodes HTTP ?

Réponse : Les méthodes HTTP sont utilisées pour effectuer un certain type d’action sur une ressource particulière d’une API. Par exemple, si vous souhaitez récupérer une liste de films à partir d’une API de collection de films, vous pouvez utiliser la méthode GET fournie par HTTP. Si vous souhaitez mettre à jour les données, vous pouvez utiliser la méthode POST fournie par HTTP.

Les méthodes HTTP fréquemment utilisées sont les suivantes :

  • GET : les requêtes utilisant GET ne doivent récupérer que des données.
  • POST : Il met à jour la ressource en envoyant une ressource nouvellement mise à jour au serveur.
  • SUPPRIMER : il supprime la ressource spécifiée.
  • PATCH : Il modifie partiellement la ressource.

Comment fonctionne l’authentification de base HTTP ?

Réponse : L’authentification est un processus permettant de vérifier l’authenticité d’un client afin de maintenir la sécurité des données. Dans HTTP, l’authentification fonctionne via un en-tête d’autorisation, qui est envoyé par le client.

L’en-tête d’autorisation se compose du nom d’utilisateur/id et du mot de passe du client, qui est ensuite vérifié par le serveur, et l’accès est accordé.

Une chose importante à noter ici est que lors de l’utilisation de l’authentification HTTP, le canal par lequel les informations d’identification passent doit être chiffré et sécurisé.

Vous pouvez sécuriser le canal à l’aide de la couche SSL, qui est intégrée à HTTPS. Il est donc recommandé d’utiliser HTTPS au lieu de HTTP simple lorsqu’il s’agit d’informations d’identification.

Quels sont les composants de base de la requête HTTP ?

Réponse : Une requête HTTP comprend les composants suivants :

  • Ligne de demande : il s’agit de la première ligne de toute demande et se compose de la méthode HTTP, du chemin ou du point de terminaison et du numéro de version HTTP.
  • En-têtes : les en-têtes HTTP sont utilisés pour fournir les métadonnées de la requête.
  • Corps (facultatif) : ce composant n’est présent que pour certaines des méthodes de requête. Il n’est pas requis pour les requêtes GET, mais il est requis pour les requêtes POST. C’est le message réel de la demande.

Quels sont les composants de base de la réponse HTTP ?

Réponse : Une réponse HTTP se compose des éléments suivants :

  • Statut : Il fait référence au code de statut HTTP qui est envoyé par le serveur.
  • En-têtes : tout comme les requêtes, les réponses ont également leurs en-têtes respectifs, qui fournissent des informations utiles sur la réponse.
  • Message : Il s’agit des données réelles envoyées par le serveur au client pour demander une ressource particulière.

Quelle est la différence entre REST et AJAX ?

Réponse : AJAX est un client via lequel vous pouvez accéder aux API RESTful. Il est utilisé pour envoyer des requêtes asynchrones à l’aide de JavaScript.

REST, ou Representational State Transfer, est une architecture qui peut être implémentée pour créer des API RESTful. En bref, pour envoyer des requêtes HTTP, vous pouvez utiliser AJAX qui sert de client, mais si vous souhaitez implémenter des API RESTful, alors vous devez utiliser l’architecture REST.

Quelle est la différence entre SOAP et REST ?

Réponse : Representational State Transfer, ou REST, est une architecture avec des contraintes minimales pour créer des API. SOAP, ou Simple Object Access Protocol, est un protocole avec des exigences strictes pour implémenter une API.

REST est plus flexible et facile à utiliser que SOAP. La messagerie basée sur XML est utilisée dans SOAP, tandis que dans REST, vous pouvez utiliser de nombreux types de transfert de données tels que JSON, XML, etc. Par rapport à SOAP, REST est plus léger et rapide.

Les services Web SOAP ont une sécurité intégrée, ce qui est l’un des avantages de l’utilisation de SOAP par rapport à REST, mais les fonctionnalités ajoutées le rendent également complexe et lourd à utiliser.

Quelle est la différence entre PUT et POST ?

Réponse : POST est une méthode de requête HTTP qui envoie des données au serveur. Si vous effectuez plusieurs requêtes POST pour une ressource particulière, vos données peuvent avoir des effets secondaires. Par exemple, si vous souhaitez ajouter un article à une collection, si vous effectuez plusieurs requêtes POST, plusieurs articles seront ajoutés à la collection, ce qui entraînera des articles redondants.

PUT est une méthode de requête HTTP qui envoie des données au serveur pour une ressource particulière mais ne met à jour les données qu’une seule fois. Si vous envoyez plusieurs requêtes PUT pour une ressource particulière, aucun effet secondaire ne se produira et les données ne seront ajoutées qu’une seule fois. Dans PUT, si la ressource n’existe pas, elle en créera une nouvelle, et si elle existe, elle mettra à jour celle existante.

PUT est idempotent, alors que POST ne l’est pas.

Qu’est-ce qu’une charge utile ?

Réponse : Une charge utile dans une API REST est simplement le corps de la requête envoyée du client au serveur. Ce sont les données que vous voulez envoyer au serveur et obtenir une réponse.

Quelle est la taille maximale de la charge utile pouvant être envoyée dans les méthodes de publication ?

Réponse : Il n’y a pas de limite par défaut définie par le protocole HTTP lui-même. La limite peut dépendre de la limite maximale du client ou du serveur, selon la valeur minimale.

Lors de la création d’URI, quelles sont les meilleures pratiques à suivre ?

Réponse : Certains des points clés que vous devez garder à l’esprit lors de la conception d’URI sont :

  • Évitez d’utiliser des extensions de fichiers
  • Soyez cohérent avec tous les URI
  • Diviser les URI en domaines et sous-domaines pour différents ensembles de ressources
  • Vous devez utiliser un trait d’union ou un trait de soulignement pour séparer les mots dans les phrases intégrées dans les URI
  • Vous devez utiliser la barre oblique pour indiquer une hiérarchie de ressources
  • Encoder un URI en utilisant l’encodage approprié
  • Essayez de rendre l’URI lisible par l’homme

Que sont les méthodes idempotentes ?

Réponse : Les méthodes HTTP idempotentes ont le même effet sur le serveur malgré l’envoi de plusieurs requêtes identiques. Par exemple, si vous envoyez plusieurs requêtes DELETE identiques pour une ressource particulière, la ressource ne changera pas à chaque requête ; il sera mis à jour comme si une seule demande avait été envoyée.

Certaines des méthodes idempotentes incluent:

  • METTRE
  • SUPPRIMER
  • OBTENIR
  • DIRIGER
  • OPTIONS

Qu’est-ce que le facteur ?

Réponse : Postman est un outil de développement d’API permettant de développer, de modifier et de tester des API. Il fournit de nombreuses fonctionnalités pour créer et tester rapidement des API sans avoir besoin de configurer un client.

Réponse : L’en-tête Cache-Control se compose d’instructions ou de directives pour configurer la mise en cache dans les navigateurs et les serveurs. Il indique au navigateur ou au serveur ce qu’il faut mettre en cache et combien de temps il doit être mis en cache avant d’être demandé via la requête réseau.

L’en-tête Cache-Control inclut les directives suivantes : –

  • max-âge
  • pas de cache
  • privé
  • public
  • pas de magasin
  • immuable

Définir la messagerie dans les services Web RESTful.

Réponse : La messagerie dans les services Web RESTful fait référence au client qui envoie une requête HTTP au serveur, à laquelle le serveur répond par une réponse HTTP. Cette communication entre le client et le serveur est appelée messagerie.

Quelle est la différence entre l’architecture monolithique, SOA et microservices ?

Réponse : Dans une architecture monolithique, tout est géré en un seul endroit. Le côté client, le serveur ainsi que la base de données sont tous gérés à partir d’un seul endroit. C’est pourquoi on l’appelle monolithique car le mot «monolithe» fait référence à un seul bloc ou pierre.

SOA signifie Architecture Orientée Services. Dans cette architecture, différents aspects de l’application sont gérés par différents services, qui sont également des logiciels. Il s’agit donc d’une combinaison de plusieurs modules logiciels de service. L’intégration est l’élément clé de cette architecture.

L’architecture des microservices est similaire à la SOA, mais contrairement à la SOA, elle comporte plusieurs logiciels autonomes qui communiquent entre eux à l’aide d’API. Contrairement à l’architecture monolithique, tout ici est autonome et, dans une certaine mesure, indépendant.

Comment fonctionne l’architecture des microservices ?

Réponse : Dans une architecture de microservices, les applications sont divisées en sous-unités plus petites qui sont indépendantes les unes des autres et fonctionnent de manière autonome, mais elles communiquent entre elles via un ensemble bien défini d’API.

Certains avantages de l’architecture de microservices incluent l’agilité, la flexibilité, l’évolutivité, les technologies indépendantes, les services réutilisables et la facilité de déploiement.

Qu’est-ce que CRUD ?

Réponse : CRUD signifie Créer, Lire, Mettre à jour, Supprimer. Ce sont les opérations qui peuvent être effectuées sur une ressource particulière. L’API qui prend en charge toutes ces opérations est connue sous le nom d’API CRUD. Ce sont les opérations les plus élémentaires qui peuvent être effectuées par une API sur une ressource.

Qu’est-ce que la mise en cache ?

Réponse : La mise en cache est une technique de stockage d’une réponse ou d’une requête sur le client ou le serveur pour qu’elle soit réutilisée ultérieurement.

Les réponses sont généralement mises en cache sur le client car si le client fait la même demande plusieurs fois dans un court intervalle de temps, cela n’a aucun sens de redemander la réponse sur le réseau et de gaspiller la bande passante.

À quoi sert @RequestMapping ?

Réponse : Il s’agit d’une annotation dans le framework Spring qui est utilisée pour mapper les requêtes Web sur des classes de gestionnaire spécifiques et/ou des méthodes de gestionnaire.

Que fait @PathVariable ?

Réponse : L’annotation @PathVariable dans le framework Spring est utilisée pour extraire la valeur des variables de modèle et affecter leur valeur à une variable de méthode.

Définissez HttpMessageConverter.

Réponse : Lorsqu’une requête HTTP (ou des parties de celle-ci) doit être convertie en un type nécessaire comme argument pour une méthode de gestionnaire ou lorsque la valeur renvoyée par une méthode de gestionnaire doit être convertie d’une manière ou d’une autre pour créer une réponse HTTP, HTTP des convertisseurs de messages sont utilisés.

Réponse : Certains outils qui peuvent vous aider dans les tests d’API sont les suivants :

  • Facteur
  • Repos assuré
  • Reste pointu
  • Katalon
  • ReadyAPI
  • Apigee

Derniers mots

De nos jours, les API sont devenues extrêmement populaires en raison de l’avènement d’Internet. Une autre raison pour laquelle les API REST sont populaires est qu’elles sont faciles à développer et à utiliser.

Si vous vous préparez pour un entretien, tenez compte des questions ci-dessus sur les API REST qui pourraient être posées lors de votre entretien.

Ensuite, vous pouvez vérifier comment gratter un site Web à l’aide de l’API Web Scraping de toptips.fr.