Comment créer une bonne API Web - Partie 3

Posté le Sunday, 29 November 2020 dans Programmation • Tags: api, graphql, rest, javascript, nodejs

Bonjour,

Cet article fait partie d'un ensemble:

Il y a quelques années de cela, j'ai souhaité résoudre un problème que j'ai depuis longtemps avec les API REST: comment bien normaliser les tris, les projections, et les filtres. En effectuant mes recherches je suis tombé sur deux frameworks qui permettent de résoudre le problème des projections.

Qu'est qu'une API Falcor

Je ne vais parler que succinctement de Falcor. C'est un framework que je n'ai pas utilisé mais j'ai tout de même été très intéressé par ce dernier et je vais écrire quelques lignes sur ce Framework.

Pour plus d'informations, vous pourrez vous référer à la documentation.

Pour reprendre les explications de la documentation, Falcor est un middleware de votre application qui permet d'interroger des ressources au format JSON sur le serveur, comme votre application le ferait sur des données en mémoire.

Falcor

La requête envoyée alors au serveur ne contient que les champs demandés par le client, ce qui permet au serveur de sélectionner les champs et de ne retourner que ces champs. De plus le serveur peut n'exposer qu'un seul modèle contenant toutes les ressources …


Lire la suite ...

Comment créer une bonne API Web - Partie 2

Posté le Monday, 02 November 2020 dans Programmation • Tags: api, graphql, rest, javascript, nodejs

Bonjour,

Cet article fait partie d'un ensemble:

Qu'est qu'une API REST

REST est une norme dont voici les grandes lignes. Il n'est pas dans mon but de faire un cours sur REST (et il y en déjà de très bons sur internet). Je souhaiterais surtout parler des points qui me semblent importants. N'hésitez pas à venir me dire si vous pensez qu'il manque des points importants. Je viendrai alors compléter mon article.

Le principe de REST est de séparer l'API en différentes ressources logiques qui peuvent être manipulées par les verbes HTTP (GET, POST, ...). La réponse de son côté se base également sur les codes http.

Le contenu de la requête et de la réponse peut être dans le format objet de votre choix (json, yaml, xml, ...). On utilise alors le header Content-Type pour définir le contenu. Une API peut d'ailleurs gérer plusieurs formats et répondre au client le bon format en fonction de la demande du client.

Basé sur des ressources

Quand on parle de REST, il faut penser ressources. Mais qu'est qu'une ressource ?

Une ressource c'est un concept abstrait de REST. Une …


Lire la suite ...

Comment créer une bonne API Web - Partie 1

Posté le Sunday, 11 October 2020 dans Programmation • Tags: api, graphql, rest, javascript, nodejs

Bonjour,

Je souhaite vous parler de l'écriture d'API. Je vais découper cet article en 3 parties:

Je me limiterai au WEB et aux normes REST et GraphQL même s'il y a d'autres normes/frameworks pour écrire des API.

Commençons donc par le début ! Qu'est-ce qu'une API ? API signifie Application Programming Interface. C'est une interface de programmation prête à être consommée par un client.

Par exemple quand on développe une librairie (en C/C++, voir un module NodeJS, ...), on définit une liste de méthodes que l'on rend publique et qui sont utilisées pour appeler cette librairie. Ces méthodes sont alors utilisées par des clients. L'API c'est ce contrat entre la librairie et le client.

Dans le cadre d'un site internet, l'API est le contrat entre un site internet et le client qui l'appelle. Comme tout contrat il faut que celui-ci soit clairement défini si on veut que ça se passe bien entre les clients et les services.

Il est important pour une bonne API public:

  • d'être stable dans le temps, ceci afin qu'un client qui utilise une API puisse continuer à l'utiliser sans devoir tout …

Lire la suite ...