Lab - API REST

On souhaite transformer notre application Web classique de gestion d’annonces immobilières en un WebService utilisable pour un site Web ou une application mobile.

Dans un premier temps on va utiliser Swagger pour définir l’API REST selon la spécification OpenAPI. On va générer un serveur node.js et implémenter les différents services (Annonce, Question/Reponse, etc.)

On testera l’API avec la commande curl ou avec des scripts utilisant le client autogénéré par Swagger. Aucune interface ou application Web n’est demandée le moment.

Dans un second temps on va chercher à gérer l’authentification et les droits d’accès à l’API. Cette partie plus exploratoire consiste à mettre en place une authentification de type OAuth2 qui va générer des tokens d’authentification qui devront être passés en paramètre des requêtes à l’API :

curl -X GET -H 'Accept: application/json' -H 'Authorization: Bearer mytoken123' 'https://api.example.com/1.0.0/ping'

Il y a plusieurs pistes à explorer : la gestion d’un serveur d’authentification ou bien la délégation vers un autre service OAuth2 (google twitter, FB, gitlab, etc…). Dans tous les cas, le projet passport.js et ses pluggins (Stratégies) seront utiles.