formations/diiage/C3-4_Base_de_données_Big_Da.../API/tp.md

2.3 KiB

TP - Concevoir une API REST de manipulation simpliste d'un système GNU/Linux

Objectifs

  • Comprendre les principes du patron de conception REST
  • Savoir documenter une API
  • Comprendre les risques associés à l'exécution d'opérations "système" via une API HTTP

Contexte et contraintes

  • La distribution cible est une Ubuntu Server 16.04.3 LTS (amd64)
  • Votre API doit utiliser le format JSON
  • Le langage de programmation est libre
  • Votre API doit permettre:
    • de lister l'espace disponible sur votre système (équivalent d'un df -h)
    • de lister les services exécutés sur votre système (équivalent d'un systemctl status)
    • de stopper un service sur votre système (équivalent d'un systemctl stop <service>)
    • de redémarrer votre serveur (équivalent d'un reboot)

Production attendue

Ceci est un TP de conception et pas d'implémentation. Vous devez vous focaliser sur le travail rédactionnel. Si ce TP est noté, c'est ce travail qui sera principalement pris en compte.

Le fait d'implémenter une première version, si elle est fonctionnelle, vous apportera par contre un bonus non négligeable de points, SI ET SEULEMENT SI le travail rédactionnel préparatoire est de bonne qualité.

Par ordre de priorité

  1. Un document expliquant les différents "points d'entrée" de votre API (voir la section "Ressources" pour un modèle de document)
  2. Un document expliquant les modifications apportées au système pour limiter le domaine d'impact de votre application.

Toutes les opérations demandées requièrent les droits root par défaut. Comment limiteriez vous le "pouvoir" (au niveau système) de votre application pour mitiger l'impact en cas de compromission de celle ci ?

Vous pouvez également fournir les fichiers de configuration pour appuyer votre argumentaire. 3. Le code source de votre prototype si vous arrivez à une première implémentation 4. Un document décrivant la procédure d'installation de votre prototype

## Ressources