API - jclaerhout/Projet_Web_III_2023 GitHub Wiki

Description

Voici un descriptif des différents endpoints possibles de notre API

Users

Méthode HTTP Route Description
GET /users Récupérer la liste de tous les utilisateurs
GET /users/:user_id Récupérer un utilisateur sur base de son identifiant
POST /users Créer un nouvel utilisateur
PUT /users/:user_id Mettre à jour les informations d'un utilisateur existant en fonction de son identifiant
DELETE /users/:user_id Supprimer un utilisateur sur base de son identifiant

Relations

Méthode HTTP Endpoint Description
GET /users/:user_id/followers Récupère la liste des utilisateurs qui suivent l'utilisateur avec l'identifiant spécifié
GET /users/:user_id/following Récupère la liste des utilisateurs que l'utilisateur avec l'identifiant spécifié suit
POST /users/:user_id/follow Ajoute un utilisateur en tant que follower de l'utilisateur avec l'identifiant spécifié
DELETE /users/:user_id/unfollow Supprime la relation de suivi entre l'utilisateur et l'utilisateur avec l'identifiant spécifié

Pictures

Méthode HTTP Endpoint Description
GET /users/:user_id/pictures Récupère toutes les images associées à un compte user
GET /pictures/:picture_id Récupère les détails d'une image sur base de son identifiant (likes, catégories, commentaires, ...)
POST /users/:user_id/pictures Ajoute une nouvelle image à la collection d'un compte user spécifié
PUT /pictures/:picture_id Met à jour une image sur base de son identifiant
DELETE /pictures/:picture_id Supprime une image sur base de son identifiant

Likes

Méthode HTTP Endpoint Description
GET /pictures/:picture_id/likes Récupère les likes d'une image
POST /pictures/:picture_id/likes Ajoute un like à une image

Lien vers la liste des endpoints documentés

Les choix de conception de l'API sont expliqués sur le Wiki :

Ressources exposées, choix de nommage, technologie utilisée… Les noms et conventions utilisés sont cohérents.

La documentation de l'API est accessible depuis le Wiki. Elle est claire et bien organisée.

"Pour chaque ressource, une section détaille :

  • la description de la ressource
  • les endpoints associés et les méthodes pour y accéder
  • les éventuels paramètres disponibles
  • un exemple de requête
  • un exemple de réponse"

L'API respecte globalement les principes REST

Node Express est un framework open-source pour le développement d'applications Web en JavaScript basé sur Node.js. Il fournit des fonctionnalités pour la création d'API Web RESTful, la gestion des routes, la gestion des middlewares et la manipulation des requêtes et réponses HTTP. Node Express respecte les principes de REST en utilisant les routes pour mapper les méthodes HTTP à des fonctions de middleware/contrôleur pour manipuler les ressources de l'application.

Le groupe peut présenter un exemple fonctionnel de endpoint de l'API (par ex. avec curl). Tous les étudiants peuvent en expliquer le fonctionnement.

Le groupe utilise un outil adéquat dédié pour tester son API lors du développement

Swagger respecte ces principes en permettant aux développeurs de décrire leurs API de manière claire et précise. Les descriptions des API Swagger incluent des informations sur les méthodes HTTP, les URI, les formats de réponse et bien plus encore. Cela permet aux clients d'interagir avec l'API de manière uniforme, respectant ainsi les principes REST.