6. Les requêtes HTTP

Maintenant que nous savons que les API Rest exposent des ressources, nous devons trouver un moyen d’interagir avec elles depuis nos applications, côté frontend. En effet, par défaut, une API Rest est simplement disponible, mais il ne se passera jamais rien à moins qu’un client initie une demande.

Pour cela, on va se servir du protocole HTTP, qui est à la base du web. D’ailleurs, la plupart des sites sur lesquelles vous vous rendez commencent par ce fameux préfixe : http://www.nom-du-site.com. Pour le moment, intéressons-nous à la requête HTTP :

Tout commence par une requête HTTP, initié par le client…

Même si notre objectif est de développer une API Rest et non une application frontend, il est toujours intéressant de savoir ce que l’on va recevoir en entrée, à savoir une requête HTTP.

Nous devons donc nous intéresser un peu plus à ce protocole. Comment est-ce que cela fonctionne exactement ?

Et bien, les requêtes HTTP semblent être structurées autour de 4 élements principaux :

  • Une URL, qui est l’adresse unique pour une ressource.
  • Une méthode HTTP permettant de décrire l’action que nous souhaitons effectuer sur la ressource. Il existe 4 opérations principales que nous devrons utiliser : Créer, Récupérer Modifier et Supprimer. Pour chacun de ces opérations , il existe une méthode HTTP associée :
    • Créer une ressource -> POST
    • Récupérer une ou plusieurs ressources -> GET
    • Modifier une ressource -> PUT
    • Supprimer -> DELETE
  • Le type MIME, qui est un des éléments les moins connus du protocole HTTP. Il est néanmoins important, car il permet de donner des indications sur la nature de la ressource entrain d’être manipulée. Par exemple, c’est le type MIME qui est utilisé par les navigateurs, pour déterminer la nature du fichier transmis, et l’action à accomplir : visualisation d’un fichier, téléchargement d’un PDF, etc. On retrouve comme type MIME courant text/html, application/json, ou encore image/jpeg. Dans notre cas, nous allons systématiquement utilisé le type MIME application/json. Cela permet d’indiquer que nous allons utiliser le format JSON pour échanger entre le serveur et le client. Mais nous verrons là-dessus dans la prochaine étape, pas de précipitations.
  • Enfin, le dernier élément concerne les données contenues dans le corps de la requête. Ce dernier élément est facultatif, car tous les types d’opérations n’ont pas forcément besoin de transmettre des données. Par exemple, pour récupérer l’utilisateur 4, il suffit d’appeler l’url /api/users/4. Pas besoin de transmettre de données donc ! En revanche, pour ajouter un nouvel utilisateur à la collection users, il va bien falloir envoyer les données de ce nouvel utilisateur au serveur. Dans ce cas, on transmet ces informations dans le corps de la requête, et on applique le bon type MIME aux données envoyées.

Désormais, nous en savons un peu plus sur les requêtes HTTP, et le type d’information que nous allons recevoir nous, côté serveur, via notre API Rest. Par contre, il va bien falloir retourner une réponse au frontend à un moment ou à un autre… Comment allons-nous faire ?

Et bien c’est ce que nous allons voir dans la prochaine étape, c’est parti !

En se baladant sur Internet, vous pourrez tomber sur le terme « Opérations CRUD ». Cela correspond simplement aux opérations que l’on vient d’aborder, mais en anglais : Create, Read, Update et Delete.

Pas sûr que le sujet vous intéresse, mais si vous le souhaitez, vous pouvez consulter la liste de tous les types MIME disponibles. Il y en a beaucoup, mais rassurez-vous, en connaître que quelques-uns suffit amplement.