Dans le secteur du développement logiciel , les intégrations jouent un rôle clé dans la conception des applications. L'une des principales technologies à cet effet est l' API REST . La connaissance de l'API REST est une compétence importante pour tout spécialiste technologique. Dans cet article, nous présenterons 25 questions API REST qui vous aideront à préparer un entretien d'embauche et à améliorer vos compétences. Bonne lecture!
Tout d'abord, l'intervieweur divise généralement les questions sur l'API REST en questions théoriques et pratiques. Tout d'abord, ils posent 2 à 3 questions théoriques sur la terminologie et les méthodes de requête HTTP, puis vous recevez une tâche pratique sur la rédaction d'une requête.
Cet article contient des questions théoriques fréquemment posées et je prévois de publier des exemples de tâches pratiques liées à l'API REST dans le prochain article. Nous ne savons pas à l'avance quelles questions vous recevrez lors d'un entretien, mais je suis sûr qu'en parcourant notre liste de questions typiques, vous approfondirez probablement le sujet et améliorerez votre connaissance de l'API REST dans en tout cas.
Passons maintenant du simple au complexe, en commençant par la terminologie de base et en poursuivant avec une section avec des questions plus complexes.
Réponse : Il existe trois termes utilisés pour faire référence à REST qui sont souvent considérés comme la même chose, mais ce n'est pas tout à fait vrai. Ces termes sont REST, REST API et RESTful API. Il y aura maintenant une réponse à propos de REST, le terme signifie Representational State Transfer et est un style architectural basé sur le protocole HTTP (Hypertext Transfer Protocol) pour développer des applications qui ont un front-end et/ou une intégration avec des systèmes externes. REST décrit les directives que les services API conçus doivent suivre. Ces principes garantissent que les requêtes sont transmises entre le client et le serveur via HTTP.
Réponse : Une API est une interface de programmation qui permet à des applications individuelles de communiquer et d'échanger des données. Par exemple, une application de livraison de nourriture peut utiliser l'API Google Maps pour suivre l'emplacement du coursier et l'afficher sur une carte. Une API REST est une API qui suit les principes de REST, traitant toutes les données comme des ressources, chacune représentée par un identifiant de ressource uniforme (URI) unique.
Réponse : Une API RESTful est une API conçue selon les règles (ou on peut aussi dire « principes ») de REST. En d’autres termes, la différence entre l’API REST et l’API RESTful est terminologique. Le premier cas fait référence à un ensemble de règles REST, et le second fait référence à la mise en œuvre d'une API spécifique suivant les règles REST. Le terme API RESTful est souvent remplacé par API REST ou même REST uniquement par souci de concision. Lorsque les analystes système dessinent des flèches intitulées REST sur un diagramme d'application, ils désignent une API RESTful.
Réponse : Les requêtes API REST doivent suivre deux principes de base : Séparation en client et serveur : L'interaction entre le client et le serveur s'effectue sous forme de requêtes et de réponses. Seuls les clients peuvent faire des requêtes et seuls les serveurs peuvent envoyer des réponses pour fonctionner indépendamment les uns des autres. Protocole unique : L'interaction entre le client et le serveur doit s'effectuer à l'aide d'un protocole unique. Pour REST, ce protocole est HTTP.
Réponse : Vous pouvez nommer au moins 4 autres principes. Les requêtes API REST ne stockent pas l'état sur le serveur et peuvent traverser des couches de serveurs et être mises en cache. Vous pouvez également envoyer du code exécutable aux clients dans la réponse du serveur. Serveur sans état : le serveur ne stocke aucune information sur les demandes/réponses passées. Chaque demande et réponse contient toutes les informations nécessaires pour compléter l'interaction. La communication sans état réduit la charge du serveur, économise de la mémoire et améliore les performances. Système en couches : des serveurs supplémentaires sont possibles entre le client et le serveur API sous forme de couches pour exécuter différentes fonctions. Dans un système construit sur les principes REST, les couches sont modulaires et peuvent être ajoutées et supprimées sans affecter les communications entre le client et le serveur. Mise en cache : les réponses du serveur indiquent si sa ressource peut être mise en cache afin que les clients puissent mettre en cache n'importe quelle ressource pour améliorer les performances. Code à la demande : le serveur peut envoyer du code exécutable aux clients dans sa réponse pour exécution dans l'application client.
Réponse : Dans REST, chaque objet accessible côté serveur est désigné comme ressource. Une ressource est un objet auquel sont associés un type, des données, une relation avec d'autres ressources sur le serveur et une liste de méthodes pouvant être utilisées pour l'utiliser. Par exemple, une ressource peut être un fichier HTML ou texte, un fichier de données, une image ou une vidéo, ou un fichier de code exécutable. Une ressource est identifiée par un Uniform Resource Identifier ou URI. Les clients accèdent aux ressources en utilisant leurs URI dans les requêtes HTTP.
Réponse : URI signifie Uniform Resource Identifier. Il s'agit d'une chaîne qui identifie une ressource sur le serveur. Chaque ressource possède son propre URI unique qui, lorsqu'il est inclus dans une requête HTTP, permet aux clients d'accéder à cette ressource et d'y effectuer des actions. Le processus de référence à une ressource par son URI est appelé « adressage ».
Réponse : CRUD signifie « Créer, Lire, Mettre à jour, Supprimer ». Ce sont les quatre principales actions pouvant être effectuées sur les bases de données via l'API REST. Chaque action possède sa propre méthode de requête HTTP :
Réponse : La charge utile de la réponse HTTP fait référence aux données de ressources demandées par le client. Ceci est également brièvement appelé « charge utile de réponse HTTP ». Ces données peuvent être au format JSON, XML, HTML, images, fichiers, etc., selon ce que fournit exactement le serveur.
Réponse : La messagerie dans REST fait référence à l'échange de messages entre le client et le serveur. La communication commence toujours lorsque le client envoie une requête HTTP au serveur. Le serveur traite cette demande, puis renvoie une réponse HTTP qui indique l'état de la demande et toutes les ressources demandées par le client.
Réponse : Dans le contexte de REST, le terme « courtier de messages » est un middleware qui sert à transmettre des messages entre différents composants ou systèmes dans une application distribuée. Le courtier peut fournir un échange de données asynchrone, une mise en file d'attente des messages et un traitement des messages entre différents modules du système.
Les courtiers de messages peuvent être utilisés pour gérer des opérations asynchrones ou envoyer des notifications. Le courtier de messages n'est pas un élément REST natif car... REST se concentre sur la communication synchrone entre le client et le serveur à l'aide de requêtes HTTP.
Réponse : La méthode de requête HTTP spécifie l'action souhaitée que le serveur effectuera sur la ressource. Dans REST, il existe quatre méthodes principales pour effectuer des requêtes HTTP d'un client vers un serveur :
Réponse : POST sert à créer une ressource sur le serveur tandis que PUT sert à remplacer une ressource à un URI spécifique par une autre ressource. Si vous utilisez PUT sur un URI auquel une ressource est déjà associée, PUT la remplacera. S'il n'y a aucune ressource à l'URI spécifié, PUT en crée une. PUT est idempotent, ce qui signifie que l’appeler plusieurs fois entraînera la création d’une seule ressource. Cela se produit parce que chaque appel remplace une ressource existante (ou en crée une nouvelle s'il n'y a rien à remplacer). POST n’est pas idempotent. Si par exemple vous appelez POST 10 fois, alors 10 ressources différentes seront créées sur le serveur, chacune avec son propre URI. Bien que rarement utilisées, les réponses POST peuvent être mises en cache, mais pas les réponses PUT. Les requêtes POST sont généralement considérées comme impossibles à mettre en cache, mais elles peuvent être mises en cache lorsqu'elles contiennent des informations claires sur la « fraîcheur » des données. Une réponse plus détaillée est que la réponse à une requête POST (ou PATCH) peut être mise en cache si les données sont "fraîches" et que l'en-tête Content-Location (en-US) est défini, mais cela est rarement implémenté. Par conséquent, la mise en cache POST doit être évitée si possible.
Réponse : Dans REST, il existe les composants de base suivants d'une requête HTTP : La méthode de requête qui sera adressée à la ressource (c'est-à-dire GET, POST, PUT, DELETE). Un URI qui identifie la ressource demandée sur le serveur. Version HTTP – c'est-à-dire quelle version doit figurer dans la réponse du serveur. L'en-tête de la requête HTTP contient des métadonnées sur la requête, telles que l'agent utilisateur, les formats de fichiers acceptés par le client, le format du corps de la requête, la langue, les préférences de mise en cache, etc. Le corps d'une requête HTTP, il contient toutes les données associées à la requête. . Cela n'est nécessaire que si la demande consiste à modifier des données sur le serveur à l'aide des méthodes POST ou PUT.
Réponse : Les réponses HTTP sont envoyées du serveur au client. Ils informent le client de la réalisation (ou non) de l'action demandée et de la livraison des ressources éventuellement demandées. Il existe quatre composants principaux d'une réponse HTTP : Version HTTP utilisée. Barre d'état avec l'état de la demande et le code d'état de la réponse HTTP. En-tête de réponse HTTP avec des métadonnées sur la réponse, notamment l'heure, le nom du serveur, l'agent utilisateur, les formats de fichiers de ressources renvoyés et les informations de mise en cache. Corps de réponse HTTP contenant des données sur la ressource demandée par le client
Réponse : Le serveur renvoie les codes d'état de fonctionnement suivants lorsque la demande est traitée avec succès :
Réponse : Le serveur renvoie les codes d'état suivants lors de la redirection d'une demande :
Réponse : Le serveur renvoie les codes suivants lorsque la demande échoue :
Réponse : Le serveur renvoie les codes suivants lorsqu'il y a une erreur sur le serveur :
500 Erreur interne du serveur : la demande n'a pas abouti en raison d'un problème inattendu avec le serveur.
502 Bad Gateway : la demande n'a pas été complétée en raison d'une réponse incorrecte du serveur en amont.
503 Service indisponible : le serveur n'a pas pu traiter la demande en raison d'une maintenance, d'une surcharge ou d'autres perturbations temporaires.
Vous pouvez trouver une liste des codes HTTP les plus courants ici
Réponse : GraphQL est un langage de requête qui permet aux clients d'interroger uniquement les données dont ils ont besoin. Dans GraphQL, le client définit la structure et le format des données qu'il souhaite recevoir, et le serveur les renvoie en fonction de cette requête. La principale différence est que REST a un format de demande et de réponse fixe pour chaque ressource, tandis que GraphQL permet aux clients de définir leur demande et d'obtenir uniquement les informations dont ils ont besoin, ce qui la rend plus efficace et plus flexible à utiliser.
Réponse : REST et SOAP (Simple Object Access Protocol) sont deux approches pour créer des API. Il existe 3 différences principales entre eux :
Réponse : JavaScript asynchrone ou AJAX est un ensemble de technologies de développement Web utilisées dans les applications Web. À la base, AJAX permet à une page Web d'envoyer des requêtes au serveur et de mettre à jour l'interface de la page sans avoir à mettre à jour la page entière.
Un client AJAX peut utiliser l'API REST dans ses requêtes, mais AJAX n'est pas obligé de fonctionner uniquement avec l'API REST. Les API REST peuvent communiquer avec n'importe quel client, qu'il utilise ou non AJAX.
Contrairement à REST, qui utilise des requêtes et des réponses HTTP pour échanger des messages, AJAX envoie ses requêtes au serveur à l'aide de l'objet XMLHttpRequest intégré à JavaScript. Les réponses du serveur sont exécutées par le code JavaScript de la page pour modifier son contenu.
Réponse : L'approche Contract First du développement d'API REST est une méthodologie dans laquelle la spécification et le contrat de l'API sont créés et définis avant le début du développement réel. Ce contrat constitue un document important qui définit comment les clients peuvent interagir avec l'API et quels résultats attendus seront obtenus à partir des diverses demandes.
Réponse : Les avantages suivants de l’approche Contract First peuvent être mentionnés :
Réponse : L'approche Code First du développement d'API REST est une méthodologie dans laquelle la fonctionnalité API est d'abord développée, puis une spécification API est automatiquement générée en fonction de cette fonctionnalité. La particularité de l'approche Code First est que les développeurs se concentrent sur l'écriture de la logique de l'API et utilisent des outils qui leur permettent de créer automatiquement une documentation et des spécifications basées sur cette logique.
De manière générale, les deux approches, Code First et Contract First, peuvent être combinées au sein d’un même projet de développement d’API. Dans ce cas, Code First est utilisé pour le prototypage rapide, suivi de Contract First pour formaliser le contrat.
J'espère que cet article vous sera utile pour préparer un entretien d'embauche ou pour rafraîchir vos connaissances sur l'API REST.