Introduction Ă  l'API REST - Services Web RESTful

Cet article est une introduction aux services Web RESTful et une vue d'ensemble de REST et HTTP.

Elle commence une série d'articles sur le développement de l'API REST:

  • Introduction Ă  l'API REST - Services Web RESTful
  • DiffĂ©rences entre REST et SOAP
  • DĂ©veloppement d'API REST - qu'est-ce que Contract First (contrat d'abord)?
  • DĂ©veloppement d'API REST - qu'est-ce que Code First (code first)?
  • API REST - Qu'est-ce que HATEOAS?
  • Recommandations de l'API REST - Exemples de conception de services Web dans Java et Spring



REST signifie REpresentational State Transfer (Wikipedia: «transfert de l'état de présentation»). Il s'agit d'une approche architecturale populaire pour créer des API dans le monde moderne.

Vous apprendrez:


  • Qu'est-ce que REST?
  • Sur quoi l'API REST est-elle basĂ©e?
  • Comment HTTP est-il utilisĂ© lors de la crĂ©ation d'une API REST?
  • Qu'est-ce qu'une ressource?
  • Comment dĂ©finissez-vous les ressources de l'API REST?
  • Quelles sont les meilleures pratiques pour dĂ©velopper une API REST?

Qu'est-ce que REST?


REST signifie REpresentational State Transfer. C'Ă©tait un terme inventĂ© Ă  l'origine par Roy Fielding, qui Ă©tait Ă©galement l'un des crĂ©ateurs du protocole HTTP. Une caractĂ©ristique distinctive des services REST est qu'ils utilisent au mieux le protocole HTTP. Jetons maintenant un coup d'Ɠil Ă  HTTP.

Présentation de HTTP


Ouvrons d'abord le navigateur et allons sur la page Web:



Et puis cliquez sur l'une des pages de résultats:



Ensuite, nous pouvons cliquer sur le lien de la page sur laquelle nous sommes:



Et allez sur une autre page:



C'est ainsi que nous naviguons habituellement sur le Web.

Lorsque nous naviguons sur Internet, beaucoup de choses se produisent dans les coulisses. Voici une vue simplifiée de ce qui se passe entre le navigateur et les serveurs exécutés sur les sites Web qu'ils visitent:



Protocole HTTP


Lorsque vous saisissez une URL dans le navigateur, par exemple www.google.com , une demande au serveur est envoyée au serveur spécifié à l'URL. Ensuite, ce serveur forme et émet la réponse. Le format de ces demandes et réponses est important. Ces formats sont définis par le protocole HTTP Hyper Text Transfer Protocol .

Lorsque vous tapez l'URL dans le navigateur, il envoie une demande GET au serveur spécifié. Le serveur répond ensuite avec une réponse HTTP qui contient des données HTML - Hyper Text Markup Language . Le navigateur reçoit alors ce code HTML et l'affiche à l'écran.

Supposons que vous remplissiez un formulaire sur une page Web avec une liste d'éléments. Dans ce cas, lorsque vous cliquez sur le bouton Soumettre , la demande HTTP POST est envoyée au serveur.

Services Web HTTP et RESTful


HTTP fournit une couche de base pour la création de services Web. Par conséquent, il est important de comprendre HTTP. Voici quelques abstractions clés.

Ressource


Une ressource est une abstraction clé sur laquelle se concentre le protocole HTTP. Une ressource est tout ce que vous souhaitez montrer au monde extérieur via votre application. Par exemple, si nous écrivons une application de gestion des tùches, les instances de ressources seront les suivantes:

  • Utilisateur spĂ©cifique
  • TĂąche spĂ©cifique
  • Liste des tĂąches

URI de ressource


Lorsque vous développez des services RESTful, vous devez vous concentrer sur les ressources d'application. La façon dont nous identifions une ressource à fournir est de lui attribuer un URI, l'identificateur universel de ressource. Par exemple:

  • CrĂ©er un utilisateur: POST / utilisateurs
  • Supprimer un utilisateur: SUPPRIMER / utilisateurs / 1
  • Obtenez tous les utilisateurs: GET / utilisateurs
  • Obtenez un utilisateur: GET / users / 1

REST et ressources


Il est important de noter qu'avec REST, vous devez penser Ă  l'application en termes de ressources:
Déterminez quelles ressources vous souhaitez ouvrir au monde extérieur.
Utilisez des verbes déjà définis par le protocole HTTP pour effectuer des opérations sur ces ressources.

Voici comment le service REST est généralement implémenté:

  • Format d'Ă©change de donnĂ©es : il n'y a aucune restriction. JSON est un format trĂšs populaire, bien que d'autres tels que XML puissent ĂȘtre utilisĂ©s.
  • Transport : toujours HTTP. REST est entiĂšrement basĂ© sur HTTP.
  • DĂ©finition du service : il n'y a pas de norme pour cela et REST est flexible. Cela peut ĂȘtre un inconvĂ©nient dans certains scĂ©narios, car une application consommatrice peut avoir besoin de comprendre les formats de demande et de rĂ©ponse. Cependant, les langages de dĂ©finition d'application Web tels que WADL (Web Application Definition Language) et Swagger sont largement utilisĂ©s.

REST se concentre sur les ressources et l'efficacité avec laquelle vous effectuez des opérations avec elles à l'aide de HTTP.

Composants HTTP


HTTP définit la structure de demande suivante:

  • ligne de demande ( ligne de demande ) - dĂ©finit le type de message
  • en-tĂȘtes de demande ( champs d'en-tĂȘte ) - caractĂ©riser le corps du message, les paramĂštres de transmission et d'autres informations
  • corps du message ( corps ) - facultatif

HTTP définit la structure suivante pour un message de réponse:

  • ligne d'Ă©tat comprenant le code d'Ă©tat et le message de raison
  • champs d'en-tĂȘte de rĂ©ponse
  • corps supplĂ©mentaire du message ( corps )

MĂ©thodes de requĂȘte HTTP


La méthode utilisée dans la demande HTTP indique quelle action vous souhaitez effectuer avec cette demande. Exemples importants:

  • OBTENIR : obtenir des informations dĂ©taillĂ©es sur les ressources
  • POST : crĂ©er une nouvelle ressource
  • PUT : mettre Ă  jour une ressource existante
  • DELETE : supprimer la ressource

Code d'état de réponse HTTP


Le code d'état est toujours présent dans la réponse HTTP. Exemples typiques:

  • 200 - succĂšs
  • 404 - page introuvable

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

Résumé


Cet article fournit une vue d'ensemble de haut niveau du style architectural REST. Le fait que HTTP soit la principale composante des services REST est souligné. HTTP est un protocole utilisé pour déterminer la structure des demandes et des réponses du navigateur. Nous avons vu que HTTP traite principalement des ressources disponibles sur les serveurs Web. Les ressources sont identifiées à l'aide d'un URI et les opérations sur ces ressources sont effectuées à l'aide de verbes définis par le protocole HTTP.

Enfin, nous avons examiné comment les services REST exploitent au mieux les fonctionnalités offertes par HTTP pour fournir des ressources au monde extérieur. REST n'impose aucune restriction sur les formats de présentation des ressources ou sur la définition d'un service.

Lecture complémentaire


Fondements de l'architecture RESTful
DĂ©veloppement d'API REST

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


All Articles