Skip to content

Développement API - Pierre Blarre

Définition & concepts

Icône Présentation
1 / 1

Définitions et concepts

Une API est offerte par :

  • une bibliothèque logicielle ou un service web
  • le plus souvent accompagnée d’une description qui spécifie comment des programmes consommateurs peuvent se servir des fonctionnalités du programme fournisseur.

On parle d’API à partir du moment où :

  • une entité informatique cherche à agir avec ou sur un système tiers
  • et que cette interaction se fait de manière normalisée en respectant les contraintes d’accès définies par le système tiers.

On dit alors que le système tiers expose une API.

L’idée princpale d’une API est de permettre à un programme de communiquer avec un autre programme en masquant la complexité de l’implémentation.

Vocabulaire

Routes

Une route est une URL qui permet d’accéder à une ressource.

Par exemple, /users pourrait être une route qui permet d’accéder à la liste des utilisateurs.

Dans les différents frameworks web, les routes sont souvent définies dans un ou plusieurs fichiers de configuration.

Pour reformuler, définir une route revient à decider quel code doit être exécuté lorsqu’un utilisateur accède à une URL donnée.

RESTful

Une API RESTful est une API qui respecte les contraintes de l’architecture REST.

REST est un style d’architecture qui définit un ensemble de contraintes pour la conception d’un système.

REST signifie REpresentational State Transfer.

Chaque ressource est accessible via une URL et les opérations CRUD (Create, Read, Update, Delete) sont effectuées en utilisant les méthodes HTTP.

Une API REST est sans état, c’est-à-dire que chaque requête est indépendante des autres, et que seules les données nécessaires à la requête sont transmises.

Une API REST ne renverra pas de pages HTML, mais uniquement des données, par exemple au format JSON.

JSON

Le format de données JSON (Javascript Object Notation) est un format de données textuelles dérivé de la notation des objets du langage Javascript.

Il est facile à lire et à écrire pour les humains et facile à analyser et à générer pour les machines.

Exemple de données JSON :

{
"name": "John Doe",
"age": 30,
"city": "New York"
}

GraphQL

GraphQL est un langage de requête et de manipulation de données pour les API.

Il permet de demander avec précisions les données dont on a besoin.

Exemple de requête GraphQL :

query {
user(id: 1) {
name
email
}
}

CRUD

CRUD est un acronyme pour Create, Read, Update, Delete.

Il s’agit des quatre opérations de base pour la persistance des données dans un système d’information.

Endpoint

Un endpoint est une URL qui permet de communiquer avec une API.

Exemple : https://api.example.com/users

Méthodes HTTP

Les méthodes HTTP sont des verbes qui permettent de définir l’action à effectuer sur une ressource.

Les méthodes les plus courantes sont :

  • GET : récupérer une ressource
  • POST : créer une ressource
  • PUT : mettre à jour une ressource
  • DELETE : supprimer une ressource

Ces méthodes sont utilisées pour communiquer avec une API RESTful.

Authentification

L’authentification est le processus qui permet de vérifier l’identité d’un utilisateur.

Il existe plusieurs méthodes d’authentification, comme par exemple:

  • Basic Auth : nom d’utilisateur et mot de passe
  • JWT (JSON Web Token) : jeton d’authentification
  • OAuth : protocole d’autorisation depuis un service tiers, comme Google ou Github

API Clients et Serveurs

L’API Client est le programme qui consomme l’API.

L’API Serveur est le programme qui expose l’API.

Par exemple on parlera d’APIs Client web pour les API consommées par un navigateur web :

et d’APIs Serveur pour les API exposées par un serveur web :

  • Avec une architecture REST pour les API RESTful
  • Permettant d’utiliser le langage GraphQL pour interroger l’API
  • Utilisant l’API WebSocket pour permettre des communications bidirectionnelles
  • etc.

Le Javascript étant un langage web, il est souvent utilisé pour construire et communiquer avec des API.

Les APIs Javascript

Le Javascript, côté client en particulier, a de nombreuses API à sa disposition.

Ces API ne font pas partie du langage Javascript lui-même.

Elles sont construites par-dessus Javascript, offrant des possibilités supplémentaires à utiliser dans le code de ses applications.

Elles se répartissent en deux catégories :

  • Les API web : elles sont intégrées aux navigateurs web et permettent de rendre disponibles les données du navigateur et de son environnement afin de réaliser des choses complexes avec (Par exemple : l’API de géolocalisation, l’API de stockage local, l’API de notification, etc.).

  • Les API tierces : elles ne sont pas intégrées au navigateur par défaut, et on doit généralement récupérer le code de l’API et des informations depuis un site web (Par exemple : l’API de Google Maps, l’API de Twitter, l’API de Facebook, etc.).

Typescript

Typescript est un sur-ensemble de Javascript qui ajoute des fonctionnalités de typage statique au langage.

Il permet de détecter des erreurs de typage avant l’exécution du code, et d’améliorer la lisibilité et la maintenabilité du code.

Typescript est souvent utilisé pour construire des applications web complexes, et pour communiquer avec des API.

Premières conclusions

  • Une API est un ensemble de règles et protocoles qui permettent à des logiciels de communiquer entre eux.
  • Les API sont utilisées pour masquer la complexité de l’implémentation.
  • Il faut connaitre les termes Rest, JSON, GraphQL, CRUD, Endpoint, Méthodes HTTP, Authentification.
  • Il existe des API dites Clientes, et d’autres Serveurs.
  • Le Javascript est un langage web qui permet de construire et communiquer avec de nombreuses API.
  • Typescript est un sur-ensemble de Javascript qui ajoute des fonctionnalités de typage statique.

Dans les sections suivantes, nous allons présenter quelques exemples d’APIs Javascript.