Un API (Interface de programmation en bon français) est une brique logicielle qui permet d’être interfacé avec d’autres applications.

Pour faire une analogie simple, dans la vie, le matin vous allez acheter le pain. Vous allez vous servir de ce pain pour faire vos tartines de beurre/confiture. Jusque là tout va bien. Et bien la boulangerie est comme une API : elle va vous fournir des éléments dont vous avez besoin. Il ne vous manque plus que la confiture pour vous préparer un petit déjeuner bien lourd à la française, avec une bonne dose de sucre matinale !

Pourquoi créer une API ?

De la même manière que vous ne savez pas forcément faire du pain (ou n’avez pas le temps), une API permet de faire communiquer des applications qui ne parlent pas la même langue, ou d’accéder à des services tiers que vous allez payer.

Créer son API

Pour créer un API, c’est vraiment très simple. Il vous faut un outil pour gérer les routes (car je présume que vous allez avoir plusieurs points d’entrée). Une route, c’est une URL, un point d’accès liée à une action particulière : ajouter un élément dans une liste, le modifier, etc. Une route est systématiquement lié a un sous ensemble logique et cohérent qui va permettre à chaque utilisateur de l’API de comprendre simplement son utilisation.

Car oui, une API est souvent faite pour que d’autres l’utilisent.

Je vais utiliser Express, c’est un outil simple et très puissant, qui permet de créer son serveur en quelques lignes.

const express = require('express');
const app = express();

Je défini aussi un port sur lequel sera dispatché mon application. J’utilise process.env.PORT au cas ou l’hébergeur demande un à utiliser un port spécifique, c’est le cas pour Heroku par example.

const port = process.env.PORT || 1337;

Ensuite, nous allons créer un chemin GET pour obtenir notre premier message. La plupart du temps, les API REST donnent un résultat en JSON. Mais rien ne vous empèche d’utiliser du xml, du messagePack, du YAML ou son petit frère le tampax (petite pub pour ce projet perso) si ça vous chante !

app.get('/', function(req, res) {
  res.json({message: 'Coucou ! Je suis la route mère'});
})

.listen(port, function () {
  console.log('Listening on http://localhost:' + port);
});

Ce qui donne :

const express = require('express');
const app = express();

const port = process.env.PORT || 1337;

app.get('/', function(req, res) {

  res.json({message: 'Nothing here ! try /help'});
})

.get('/help', function(req, res) {

  res.json({message: 'Use /item to get item and make things'});
})

.get('/:item', function(req, res) {

  const item = req.params.item.toString();
  res.json({item});
})

.listen(port, function () {
  console.log('Listening on http://localhost:' + port);
});

Pour tester votre application, je vous suggère d’utiliser une application de test d’API. En effet, il n’est pas commode d’envoyer des requêtes POST via un navigateur. Personnellement, j’utilise Postman. L’application est très simple à prendre en main, mais vous pouvez lire la documentation si vous êtes perdus.

Je vous invite à regarder les sources de ce projet d’API simple, qui permet de créer des listes et de les exploiter, avec un simple système de upvotes / downvotes.

Tags :

Catégories : , ,

Dernière mise à jour :

Laisser un commentaire

Votre adresse email ne sera pas visible. Les champs obligatoires sont marqués *

Chargement...
Reçevoir les prochains commentaires de cet article.