Comment fonctionne une  REST API<span class="wtr-time-wrap after-title"><span class="wtr-time-number">10</span> min read</span>
jwt token legende

Comment fonctionne une REST API10 min read

C est un terme que l’on entends de plus en plus, mais c est quoi au juste une restapi ?

À la fin de cet article vous saurez tout sur les REST API. À quoi elles servent , comment les utiliser et pourquoi les utiliser.

C est quoi une REST api ?

Derrière ce terme barbare se cache un concept plutôt simple, une REST API c est un serveur web qui accepte des requêtes utilisateur et va modifier des données dans la base de donnée selon la requete.

Concrètement, lorsque vous êtes sur Youtube et que vous écrivez un commentaire , vous allez envoyer à la REST API le contenu du commentaire , et elle va se charger de l ajouter à la base de donnée.

C est en fait une plateforme qui permets aux utilisateurs de modifier la base de donnée par le biais d’un serveur web contrôlant le bon déroulement des requêtes afin d’éviter les bugs ou les hack.

À quoi sert une REST api ?

Grande question , pourquoi utiliser une REST API alors qu on as notre bon vieux modèle MVC pour gérer nos sites Webs ?

Les site Webs

Dans un premier temps , les REST API sont utiles pour nos bons vieux site Webs. Avez vous entendu parler d AJAX ? J imagine que oui.

C est une technologie JavaScript permettant de faire des requêtes http sans quitter la page web déjà chargée. Vous voyez où je veux en venir ?

En créant une REST API , vous pourrez charger ou modifier des élément de votre base de donnée dans avoir à te charger la page. Pour reprendre l exemple de YouTube , lorsque vous postez un commentaire , une requête AJAX est envoyée à l API et cette dernière va créer le commentaire dans la base de donnée.

Avoir une REST API permettant de modifier la base de donnée vous permettras d ajouter du dynamisme à vos page web. En effet , l utilisateur ‘ auras plus à recharger complètement la page pour effectuer une action dans la base de donnée.

Les SPA ( single page app)

C est clairement un boom vers derniers temps. Les SPA sont partout. J en ai d’ailleurs parlé dans mon post sur REACT JS https://leblogducodeur.fr/pourquoi-utiliser-react/

Les SPA c est des site Webs qui ne possèdent qu une seule page HTML qui ne charge qu une seule fois. Le reste de l utilisation se fait grâce à des modifications du DOM en JavaScript et des requêtes AJAX

Pourquoi ça gagne en popularité ? Et bien car les SPA sont bien plus rapide et fluides que les site Webs normaux.

Les SPA avec une REST API

Dans le cas des SPA , toutes les modifications de données passent par une REST. Que ça soit la récupération d un post de blog ou la création d’ un utilisateur.

Pourquoi est ce nécéssaire ? Et bien car nous n avons qu un seul document HTML. Donc il ne est pas possible de modifier ou accéder aux données par des requêtes http classiques. À la place on doit utiliser AJAX et donc les REST API.

Si vous ne êtes pas convaincu , sachez que Facebook utilisent ce système de SPA et ça fonctionne très bien. Ils ont même créé un outil appelé REACT permettant de créer des spa

Les applications mobiles / pc

J ai une nouvelle qui va vous ravir, il est possible de créer des applications mobiles facilement grâce aux REST API.

En effet elles permettent de accéder à des bases de données externes au téléphone ou à l’ordinateur , génial non ?

Tout comme un site web avec AJAX , il est possible d’utiliser les REST API pour accéder à des données via le protocole http.

Ce qui est génial , c est qu on va pouvoir utiliser un système de programmation appelé l isomorphisme

L’ isomorphisme

La on rentre dans du concret, l isomorphisme c est le fait de construire plusieurs applications avec une seule entrée serveur , notre REST API.

Imaginez que vous devez construire une application mobile , un site web optimisé mobile , un site web optimisé pc et un logiciel . Tout ça pour une même technologie exportée sur plusieurs plateformes.

L’ avantage de la REST API , c est qu vous allez pouvoir créer ces trois application et utiliser le API pour la gestion de donnée dans vous soucier de la compatibilité. C est le gros avantage des REST API , le dialogue entre les applications et le serveur sera universel. Ce qui permets de gagner du temps en créant un seul backend et plusieurs front end.

Les désavantages des REST Api

Pour être franc , il y en as deux. Déja les performances. Si votre code est de mauvaise qualité , les performances seront mauvaises. Heureusement ce problème se règle facilement grâce aux techniques faciles à apprendre

Ensuite le second problème c est la sécurité. Les REST API sont sécurisés si vous respectez les protocoles de sécurité. Ceux ci sont simples à mettre en place mais si ce n’ est pas fait. Votre application est vulnérable.

Heureusement ces techniques et protocoles sont simples à mettre en place et permettent de créer une API rest rapide et sécurisé

Mise en place d’une REST API

Maintenant que vous savez ce qu’est une REST API, on va voir comment en mettre une en place, c’est à dire concrètement, comment on peux créer une REST API.

Ici je ne vais pas utiliser de langages de programmation pour ne perdre personne, on ne va utiliser que du pseudo-code et parler de théorie. Mais vous serez capable assez rapidement d’implémenter ces concepts dans votre code.

CRUD (Create, Read, Update, Delete )

Voici les 4 opérations qui permettent de faire n’importe quoi dans votre base de donnée grâce a une REST API. Une des règle de base lorsque vous créez une REST API, c’est d’implémenter pour chaque ressource (chaque objet dans une base de donnée) ces 4 actions.

D’abord on as Créer, cette action permets simplement de créer un nouvel objet, encore une fois cela peux être n’importe quoi. L’important c’est de comprendre qu’il faut implémenter une route permettant de créer un nouvel objet

Puis on as Lire, c’est la route de base, on va simplement récupérer les données présentes dans la base de donnée. A chaque fois que l’on veux lire une entrée dans une base de donnée, on va utiliser cette action.

Mettre à jour, c’est l’action la plus difficile à mettre en place, elle consiste à modifier une entrée dans la base de donnée déjà crée.

Supprimer, c’est l’action qui va permettre de supprimer une entrée dans une base de donnée.

Les verbes HTTP

Chacune de ces actions est lié a un verbe HTTP. Qu’est ce que c’est ? Et bien c’est en fait un mot clé dans le protocol http qui va indiquer à votre serveur quel action vous allez effectuer. Par exemple dans votre API si vous faites une requete get sur la route /livres, et bien vous allez accéder aux livres dans votre base de donnée.

Voyons les verbes http les plus utilisés :

  • GET : c’est le verbe HTTP qui permets d’accéder à une ressource, sans aucune modification. Le verbe GET permets d’obtenir les données dans une base de donnée.
  • POST : c’est le verbe qui permets de créer un nouvel objet dans la base de donnée/
  • PATCH : permets de modifier / mettre à jour une ressource
  • PUT : permets de modifier / remplacer une ressource
  • DELETE : permets de supprimer une ressource

Ces règles doivent être scrupuleusement respectés, lorsque vous voulez accéder à une ressource, utiliser GET et c’est tout.

JSON WEB TOKEN

Nous n’avons pas encore parlé de l’authentification, c’est pourtant quelque chose d’essentiel. Vous voulez créer une route permettant de supprimer un utilisateur. Mais vous ne voulez pas que tout le monde puisse accéder à cette route.

C’est la qu’entre en jeux JSON WEB TOKEN. C’est une technologie basée sur le protocol O’Auth qui permets de créer un système d’authentification et de permissions.

Comment ça fonctionne exactement ?

jwt token legende
jwt token legende

Le token c’est une clé qui est générée lorsque vous accédez à la route de connexion de votre API. Dans le cas ou la connexion est validée c’est à dire que l’utilisateur existe et que le mot de passe correspond, le serveur va envoyer un token. Ce token est hashé, c’est à dire crypté et va être divisé en 3 parties.

Le header , c’est la que les informations sur le token sont stockés, en l’occurrence jsonwebtoken (jwt) et l’algorithme de hashage (HS256).

Ensuite on as le payload, c’est les données que l’on veux stocker dans ce token. Grâce a ça on peux par exemple contrôler que l’utilisateur est administrateur. Si c’est le cas on le laisse accéder aux données, et dans le cas contraire on le redirige.

Enfin on as la signature, c’est l’aspect unique du token qui permets a votre serveur de vérifier qu’il proviens bien de chez vous. Grâce a ça il n’y a aucun moyen que le token soit hacké.

Conclusion

On as pu voir que les API REST permettent de créer des site web dynamiques et surtout d’implémenter de l’isomorphisme c’est à dire plusieurs applications pour un seul serveur.

Ensuite nous avons appris comment utiliser une authentification et les verbes http afin de sécuriser votre API et de bien organiser vos actions selon les verbes.

J’espère que cette introduction vous as plu et que vous vous sentez plus à l’aise avec les API REST.

Si cet article vous as plu, vous pouvez vous abonner à ma newsletter pour recevoir le guide GRATUIT Ultime pour bien débuter la programmation

Vous abonner à notre newsletter

* champ requis

Laisser un commentaire

Fermer le menu
×
×

Panier