Différences entre les versions de « Music sender api »
(→Music) |
(→Share) |
||
| (59 versions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 1 : | Ligne 1 : | ||
| − | + | =User= | |
| − | + | L'objet user est composé comme suit : {"id":"1","pseudo":"tala","email":"tala@tala.com","id_image":null} | |
| − | L'objet user est composé comme suit : {"id":"1","pseudo":"tala","email":"tala@tala.com"} | ||
{|class="wikitable" width="100%" | {|class="wikitable" width="100%" | ||
|-valign=top | |-valign=top | ||
! URL !! Corps !! Verbe !! Action !! Code retour !! Implémentée | ! URL !! Corps !! Verbe !! Action !! Code retour !! Implémentée | ||
| + | |- | ||
| + | || | ||
| + | /api/user | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Retourne un tableau avec tous les objets utilisateur | ||
| + | || | ||
| + | *200 : si l'objet existe | ||
| + | *400 : si une erreur survient | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
|- | |- | ||
|| | || | ||
| Ligne 14 : | Ligne 27 : | ||
GET | GET | ||
|| | || | ||
| − | Retourne un objet utilisateur | + | Retourne un objet utilisateur |
|| | || | ||
*200 : si l'objet existe | *200 : si l'objet existe | ||
| Ligne 32 : | Ligne 45 : | ||
POST | POST | ||
|| | || | ||
| − | + | Crée un nouvel utilisateur et renvoie son identifiant | |
|| | || | ||
| − | * | + | *201 : si la création réussi avec en réponse l'identifiant (eg. {"id":1} ) |
| − | *400 | + | *400 : si la création échoue |
| − | |||
|| | || | ||
[[Fichier:implemented_green_tick.png|center|40px]] | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| Ligne 50 : | Ligne 62 : | ||
Modifie l'email du compte | Modifie l'email du compte | ||
|| | || | ||
| − | *200 : si la modification réussie | + | *200 : si la modification réussie |
| − | *400 : si une erreur survient | + | *400 : si une erreur survient |
| − | *404 : si l'utilisateur n'existe pas | + | *404 : si l'utilisateur n'existe pas |
| − | |||
|| | || | ||
[[Fichier:implemented_green_tick.png|center|40px]] | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| Ligne 67 : | Ligne 78 : | ||
Modifie le mot de passe du compte | Modifie le mot de passe du compte | ||
|| | || | ||
| − | *200 : si la modification réussie | + | *200 : si la modification réussie |
| − | *400 : si une erreur survient | + | *400 : si une erreur survient |
| − | *404 : si l'utilisateur n'existe pas | + | *404 : si l'utilisateur n'existe pas |
| − | |||
|| | || | ||
[[Fichier:implemented_green_tick.png|center|40px]] | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| Ligne 84 : | Ligne 94 : | ||
Efface l'utilisateur | Efface l'utilisateur | ||
|| | || | ||
| − | *200 : si l'objet existe | + | *200 : si l'objet existe |
| − | *404 : si l'objet n'existe pas | + | *404 : si l'objet n'existe pas |
| − | *400 : si une erreur survient | + | *400 : si une erreur survient |
|| | || | ||
[[Fichier:implemented_red_cross.png|center|40px]] | [[Fichier:implemented_red_cross.png|center|40px]] | ||
|} | |} | ||
| − | == | + | =Genre= |
| + | L'objet genre est composé comme suit : {"id": "1", "name": "Electro-Jazz"} | ||
| + | {|class="wikitable" width="100%" | ||
| + | |-valign=top | ||
| + | ! URL !! Corps !! Verbe !! Action !! Code retour !! Implémentée | ||
| + | |- | ||
| + | || | ||
| + | /api/genre | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Retourne un tableau avec tous les objets genre | ||
| + | || | ||
| + | *200 : si l'objet existe | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/genre/$$ID$$ | ||
| + | *$$ID$$ : un id de genre | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Retourne un objet genre | ||
| + | || | ||
| + | *200 : si l'objet existe | ||
| + | *404 : si l'objet n'existe pas | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/genre/like/$$EXPR$$ | ||
| + | *$$EXPR$$ : une expression contenu dans un genre | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Retourne un tableau d'objets genre | ||
| + | || | ||
| + | *200 | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/genre | ||
| + | || | ||
| + | *genre : le nom du genre | ||
| + | |align='center'| | ||
| + | POST | ||
| + | || | ||
| + | Créé un nouvel objet genre | ||
| + | || | ||
| + | *201 : si la création réussie | ||
| + | *400 : si la création échoue | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/genre/$$ID$$ | ||
| + | *$$ID$$ : un id de genre | ||
| + | || | ||
| + | *genre : le nom du genre | ||
| + | |align='center'| | ||
| + | PUT | ||
| + | || | ||
| + | Modifie le nom du genre | ||
| + | || | ||
| + | *200 : si la modification réussie | ||
| + | *400 : si la modification échoue | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/genre/$$ID$$ | ||
| + | *$$ID$$ : un id de genre | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | DELETE | ||
| + | || | ||
| + | Efface le genre | ||
| + | || | ||
| + | *200 : si l'effacement réussie | ||
| + | *400 : si l'effacement échoue | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |} | ||
| − | == | + | =Artist= |
| + | L'objet artiste est composé comme suit : {"id":"84","name":"Yolanda Be Cool & Dcup","id_image":null} | ||
| + | {|class="wikitable" width="100%" | ||
| + | |-valign=top | ||
| + | ! URL !! Corps !! Verbe !! Action !! Code retour !! Implémentée | ||
| + | |- | ||
| + | || | ||
| + | /api/artist | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Retourne un tableau avec tous les objets artiste | ||
| + | || | ||
| + | *200 : si l'objet existe | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/artist/$$ID$$ | ||
| + | *$$ID$$ : un id d'artiste | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Retourne un objet artiste | ||
| + | || | ||
| + | *200 : si l'objet existe | ||
| + | *404 : si l'objet n'existe pas | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/artist/like/$$EXPR$$ | ||
| + | *$$EXPR$$ : une expression contenu dans un nom d'artiste | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Retourne un tableau d'objets artiste | ||
| + | || | ||
| + | *200 | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/artist | ||
| + | || | ||
| + | *name : le nom de l'artist | ||
| + | *image : l'identifiant d'une image (optionnel) | ||
| + | |align='center'| | ||
| + | POST | ||
| + | || | ||
| + | Créé un nouvel objet artiste | ||
| + | || | ||
| + | *201 : si la création réussie | ||
| + | *400 : si la création échoue | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/artist/name/$$ID$$ | ||
| + | *$$ID$$ : un id d'artiste | ||
| + | || | ||
| + | *name: le nom de l’artiste | ||
| + | |align='center'| | ||
| + | PUT | ||
| + | || | ||
| + | Modifie le nom de l'artiste | ||
| + | || | ||
| + | *200 : si la modification réussie | ||
| + | *400 : si la modification échoue | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/artist/image/$$ID$$ | ||
| + | *$$ID$$ : un id d'artiste | ||
| + | || | ||
| + | *image: l'identifiant de l'image | ||
| + | |align='center'| | ||
| + | PUT | ||
| + | || | ||
| + | Modifie l'image de l'artiste | ||
| + | || | ||
| + | *200 : si la modification réussie | ||
| + | *400 : si la modification échoue | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/genre/$$ID$$ | ||
| + | *$$ID$$ : un id d'artiste | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | DELETE | ||
| + | || | ||
| + | Efface l'artiste | ||
| + | || | ||
| + | *200 : si l'effacement réussie | ||
| + | *400 : si l'effacement échoue | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |} | ||
| − | == | + | =Album= |
| + | L'objet album est composé comme suit : {"id":"1","album":"Electro Swing Collection 1","coverId":null} | ||
| + | {|class="wikitable" width="100%" | ||
| + | |-valign=top | ||
| + | ! URL !! Corps !! Verbe !! Action !! Code retour !! Implémentée | ||
| + | |- | ||
| + | || | ||
| + | /api/album | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Retourne un tableau avec tous les objets album | ||
| + | || | ||
| + | *200 | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/album/$$ID$$ | ||
| + | *$$ID$$ : un id d'album | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Retourne un objet album | ||
| + | || | ||
| + | *200 : si l'objet existe | ||
| + | *404 : si l'objet n'existe pas | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/album/artist/$$ID$$ | ||
| + | *$$ID$$ : l'identifiant d'un artiste | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Retourne un tableau d'objets album | ||
| + | || | ||
| + | *200 | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/album/genre/$$ID$$ | ||
| + | *$$ID$$ : l'identifiant d'un genre | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Retourne un tableau d'objets album | ||
| + | || | ||
| + | *200 | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/album/like/$$EXPR$$ | ||
| + | *$$EXPR$$ : une expression contenu dans un nom d'album | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Retourne un tableau d'objets album | ||
| + | || | ||
| + | *200 | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/album | ||
| + | || | ||
| + | *name : le nom de l'album | ||
| + | *image : l'identifiant d'une image (optionnel) | ||
| + | |align='center'| | ||
| + | POST | ||
| + | || | ||
| + | Créé un nouvel objet album | ||
| + | || | ||
| + | *201 : si la création réussie | ||
| + | *400 : si la création échoue | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/album/name/$$ID$$ | ||
| + | *$$ID$$ : un id d'album | ||
| + | || | ||
| + | *name: le nom de l’album | ||
| + | |align='center'| | ||
| + | PUT | ||
| + | || | ||
| + | Modifie le nom de l'album | ||
| + | || | ||
| + | *200 : si la modification réussie | ||
| + | *400 : si la modification échoue | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/album/image/$$ID$$ | ||
| + | *$$ID$$ : un id d'album | ||
| + | || | ||
| + | *image: l'identifiant de l'image | ||
| + | |align='center'| | ||
| + | PUT | ||
| + | || | ||
| + | Modifie l'image de l'album | ||
| + | || | ||
| + | *200 : si la modification réussie | ||
| + | *400 : si la modification échoue | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/genre/$$ID$$ | ||
| + | *$$ID$$ : un id d'album | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | DELETE | ||
| + | || | ||
| + | Efface l'album | ||
| + | || | ||
| + | *200 : si l'effacement réussie | ||
| + | *400 : si l'effacement échoue | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |} | ||
| − | + | =Music= | |
L'objet musique est composé comme suit : {"id":"1","title":"All Night","artists":["1"],"genres":["1"],"bitrate":"128","hit":"4","duration":"163","id_image":"1"} | L'objet musique est composé comme suit : {"id":"1","title":"All Night","artists":["1"],"genres":["1"],"bitrate":"128","hit":"4","duration":"163","id_image":"1"} | ||
{|class="wikitable" width="100%" | {|class="wikitable" width="100%" | ||
| Ligne 150 : | Ligne 493 : | ||
|| | || | ||
/api/music/artist/$$ID$$ | /api/music/artist/$$ID$$ | ||
| − | *$$ID$$ : un id | + | *$$ID$$ : un id d'artiste |
|| | || | ||
*vide | *vide | ||
| Ligne 163 : | Ligne 506 : | ||
[[Fichier:implemented_green_tick.png|center|40px]] | [[Fichier:implemented_green_tick.png|center|40px]] | ||
|} | |} | ||
| + | =Image= | ||
| + | L'objet image est composé comme suit : {"id": "1", "content": "/9j/4B4…T0+7RRW/2Q==","mime":"image\jpeg","hash":"0aebaad7…4f265bd"} } | ||
| + | {|class="wikitable" width="100%" | ||
| + | |-valign=top | ||
| + | ! URL !! Corps !! Verbe !! Action !! Code retour !! Implémentée | ||
| + | |- | ||
| + | || | ||
| + | /api/images | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Retourne un tableau avec tous les objets image | ||
| + | || | ||
| + | *200 | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/image/info/$$ID$$ | ||
| + | *$$ID$$ : un id d'image | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Retourne un objet image | ||
| + | || | ||
| + | *200 : si l'objet existe | ||
| + | *404 : si l'objet n'existe pas | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/image/content/$$ID$$ | ||
| + | *$$ID$$ : un id d'image | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Retourne le contenu du fichier avec le type mime en entête | ||
| + | || | ||
| + | *200 : si l'objet existe | ||
| + | *404 : si l'objet n'existe pas | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/image | ||
| + | || | ||
| + | *content : le contenu du fichier image | ||
| + | |align='center'| | ||
| + | POST | ||
| + | || | ||
| + | Créé un nouvel objet image | ||
| + | || | ||
| + | *200 : si la création réussie | ||
| + | *400 : si la création échoue | ||
| + | || | ||
| + | [[Fichier:implemented_red_cross.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/image/$$ID$$ | ||
| + | *$$ID$$ : un id d'image | ||
| + | || | ||
| + | *content : le contenu du fichier image | ||
| + | |align='center'| | ||
| + | PUT | ||
| + | || | ||
| + | Modifie l'image | ||
| + | || | ||
| + | *200 : si la modification réussie | ||
| + | *400 : si la modification échoue | ||
| + | || | ||
| + | [[Fichier:implemented_red_cross.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/image/$$ID$$ | ||
| + | *$$ID$$ : un id de genre | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | DELETE | ||
| + | || | ||
| + | Efface l'image | ||
| + | || | ||
| + | *200 : si l'effacement réussie | ||
| + | *400 : si l'effacement échoue | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |} | ||
| + | =Device= | ||
| + | L'objet périphérique est composé comme suit : {"name":"\/dev\/sda1","label":"MUSIC","size":"7.2 GiB","UUID":"84B9-A853","fstype":"vfat"} | ||
| + | {|class="wikitable" width="100%" | ||
| + | |-valign=top | ||
| + | ! URL !! Corps !! Verbe !! Action !! Code retour !! Implémentée | ||
| + | |- | ||
| + | || | ||
| + | /api/device | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Retourne un tableau avec tous les périphériques | ||
| + | || | ||
| + | *200 | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/device/list/$$UUID$$ | ||
| + | *$$UUID$$ : un UUID de périphérique | ||
| + | * paramètre(s): | ||
| + | ** path : un chemin sur le périphérique | ||
| + | ** extension : un filtre par extension de fichier (optionnel) | ||
| + | || | ||
| + | * vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Retourne un tableau avec la liste récursive des fichiers | ||
| + | || | ||
| + | *200 : si l'UUID existe | ||
| + | *400 : si l'UUID n'existe pas | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/device/explore/$$UUID$$ | ||
| + | *$$UUID$$ : un UUID de périphérique | ||
| + | * paramètre(s): | ||
| + | ** path : un chemin sur le périphérique | ||
| + | ** extension : un filtre par extension de fichier (optionnel) | ||
| + | || | ||
| + | * vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Retourne un tableau avec la liste des fichiers et dossiers: | ||
| + | |||
| + | {"directories":["Pop","Rock"],"files":["Gala - Freed From Desire.mp3","13)Jacques Your Body (Make Me Sweat)(Jcf Pitch Edit).mp3"]} | ||
| + | || | ||
| + | *200 : si l'UUID existe | ||
| + | *400 : si l'UUID n'existe pas | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/device/content/$$UUID$$ | ||
| + | *$$UUID$$ : un UUID de périphérique | ||
| + | * paramètre(s): | ||
| + | ** path : un chemin sur le périphérique | ||
| + | ** download : si présent, le navigateur téléchargera le fichier ('Content-disposition: attachment;' au lieu de 'Content-disposition: inline;') | ||
| + | || | ||
| + | * vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Retourne le contenu du fichier avec le type mime en entête | ||
| + | || | ||
| + | *200 : si le fichier existe | ||
| + | *400 : si le fichier n'existe pas | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/device/tag/$$UUID$$ | ||
| + | *$$UUID$$ : un UUID de périphérique | ||
| + | * paramètre(s): | ||
| + | ** path : un chemin sur le périphérique | ||
| + | || | ||
| + | * vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Retourne un tableau contenant les tags du ou des fichiers présent dans le répertoire | ||
| + | || | ||
| + | *200 : si le fichier existe | ||
| + | *400 : si le fichier n'existe pas | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/device/size/$$UUID$$ | ||
| + | *$$UUID$$ : un UUID de périphérique | ||
| + | * paramètre(s): | ||
| + | ** path : un chemin sur le périphérique | ||
| + | || | ||
| + | * vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Retourne la taille du fichiers ou répertoire | ||
| + | || | ||
| + | *200 : si le fichier existe | ||
| + | *400 : si le fichier n'existe pas | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/device/mounted | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Retourne un tableau avec la liste des périphériques montés | ||
| + | || | ||
| + | *200 : si aucune erreur | ||
| + | *400 : si une erreur survient | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/device/umounted | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Retourne un tableau avec la liste des périphériques démontés | ||
| + | || | ||
| + | *200 : si aucune erreur | ||
| + | *400 : si une erreur survient | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/device/mount/$$UUID$$ | ||
| + | *$$UUID$$ : un UUID de périphérique | ||
| + | || | ||
| + | * vide | ||
| + | |align='center'| | ||
| + | POST | ||
| + | || | ||
| + | Monte le périphérique sur le système | ||
| + | || | ||
| + | *200 : si le montage réussie | ||
| + | *400 : si le montage échoue | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/device/enable/$$UUID$$ | ||
| + | *$$UUID$$ : un UUID de périphérique | ||
| + | || | ||
| + | * vide | ||
| + | |align='center'| | ||
| + | POST | ||
| + | || | ||
| + | Active le montage du périphérique au démarrage du système | ||
| + | || | ||
| + | *200 : si le montage réussie | ||
| + | *400 : si le montage échoue | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/device/index/$$UUID$$ | ||
| + | *$$UUID$$ : un UUID de périphérique | ||
| + | * paramètre(s): | ||
| + | ** path : un chemin sur le périphérique | ||
| + | || | ||
| + | * vide | ||
| + | |align='center'| | ||
| + | POST | ||
| + | || | ||
| + | Index le répertoire ou le fichier désigné par le paramètre path | ||
| + | || | ||
| + | *200 : si le fichier existe | ||
| + | *400 : si le fichier n'existe pas | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/device/mount/$$UUID$$ | ||
| + | *$$UUID$$ : un UUID de périphérique | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | DELETE | ||
| + | || | ||
| + | Démonte le périphérique du système | ||
| + | || | ||
| + | *200 : si le démontage réussie | ||
| + | *400 : si le démontage échoue | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/device/enable/$$UUID$$ | ||
| + | *$$UUID$$ : un UUID de périphérique | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | DELETE | ||
| + | || | ||
| + | Désactive le montage du périphérique au démarrage du système | ||
| + | || | ||
| + | *200 : si le démontage réussie | ||
| + | *400 : si le démontage échoue | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |} | ||
| + | |||
| + | =Share= | ||
| + | L'objet partage est composé comme suit : {"host":"hades","share":"downloads","login":"nobody"} | ||
| + | {|class="wikitable" width="100%" | ||
| + | |-valign=top | ||
| + | ! URL !! Corps !! Verbe !! Action !! Code retour !! Implémentée | ||
| + | |- | ||
| + | || | ||
| + | /api/share | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Retourne un tableau avec tous les partages montés | ||
| + | || | ||
| + | *200 | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/share/list/$$HOST$$ | ||
| + | *$$HOST$$ : un hôte supportant le protocole SMB/CIFS | ||
| + | || | ||
| + | * vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Retourne un tableau avec la liste des partages disponibles sur l'hôte | ||
| + | || | ||
| + | *200 | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/share/list/$$HOST$$/$$SHARE$$ | ||
| + | *$$HOST$$ : un hôte supportant le protocole SMB/CIFS | ||
| + | *$$SHARE$$ : le nom du partage sur cet hôte | ||
| + | * paramètre(s): | ||
| + | ** path : un chemin sur le partage | ||
| + | ** extension : filtre à appliquer sur les fichiers (optionnel) | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Retourne un tableau avec la liste récursive de tous les fichiers disponibles sur le partage | ||
| + | |||
| + | Attention, l'appel peut être long, surtout lorsque les partages contiennent beaucoup de fichiers | ||
| + | || | ||
| + | * 200 : si le partage existe | ||
| + | * 400 : si le partage n'existe pas | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/device/explore/$$HOST$$/$$SHARE$$ | ||
| + | *$$HOST$$ : un hôte supportant le protocole SMB/CIFS | ||
| + | *$$SHARE$$ : le nom du partage sur cet hôte | ||
| + | * paramètre(s): | ||
| + | ** path : un chemin sur le partage | ||
| + | ** extension : filtre à appliquer sur les fichiers (optionnel) | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Retourne un tableau avec la liste des fichiers | ||
| + | || | ||
| + | *200 : si le partage existe | ||
| + | *400 : si le partage n'existe pas | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/share/content/$$HOST$$/$$SHARE$$ | ||
| + | *$$HOST$$ : un hôte supportant le protocole SMB/CIFS | ||
| + | *$$SHARE$$ : le nom du partage sur cet hôte | ||
| + | * paramètre(s): | ||
| + | ** path : un chemin sur le partage | ||
| + | ** download : si présent, le navigateur téléchargera le fichier ('Content-disposition: attachment;' au lieu de 'Content-disposition: inline;') | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Retourne le contenu du fichier avec le type mime en entête | ||
| + | || | ||
| + | * 200 : si le fichier existe | ||
| + | * 400 : si le fichier n'existe pas | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/share/tag/$$HOST$$/$$SHARE$$ | ||
| + | *$$HOST$$ : un hôte supportant le protocole SMB/CIFS | ||
| + | *$$SHARE$$ : le nom du partage sur cet hôte | ||
| + | * paramètre(s): | ||
| + | ** path : un chemin sur le partage | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Retourne un tableau contenant les tags du ou des fichiers présent dans le répertoire | ||
| + | || | ||
| + | * 200 : si le fichier existe | ||
| + | * 400 : si le fichier n'existe pas | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/share/size/$$HOST$$/$$SHARE$$ | ||
| + | *$$HOST$$ : un hôte supportant le protocole SMB/CIFS | ||
| + | *$$SHARE$$ : le nom du partage sur cet hôte | ||
| + | * paramètre(s): | ||
| + | ** path : un chemin sur le partage | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Retourne la taille du fichiers ou répertoire | ||
| + | || | ||
| + | * 200 : si le fichier existe | ||
| + | * 400 : si le fichier n'existe pas | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/share/$$HOST$$/$$SHARE$$ | ||
| + | *$$HOST$$ : un hôte supportant le protocole SMB/CIFS | ||
| + | *$$SHARE$$ : le nom du partage sur cet hôte | ||
| + | || | ||
| + | * login : le login à utiliser (optionnel) | ||
| + | * password : le mot de passe associé (optionnel) | ||
| + | |align='center'| | ||
| + | POST | ||
| + | || | ||
| + | Monte le partage sur le système. Si aucun couple d'authentification n'est fourni, ''nobody'' sera utilisé | ||
| + | || | ||
| + | *200 : si le montage réussie | ||
| + | *400 : si le montage échoue | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/share/index/$$HOST$$/$$SHARE$$ | ||
| + | *$$HOST$$ : un hôte supportant le protocole SMB/CIFS | ||
| + | *$$SHARE$$ : le nom du partage sur cet hôte | ||
| + | * paramètre(s): | ||
| + | ** path : un chemin sur le partage | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | POST | ||
| + | || | ||
| + | Index le répertoire ou le fichier désigné par le paramètre path | ||
| + | || | ||
| + | *200 : si le montage réussie | ||
| + | *400 : si le montage échoue | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/share/$$HOST$$/$$SHARE$$ | ||
| + | *$$HOST$$ : un hôte supportant le protocole SMB/CIFS | ||
| + | *$$SHARE$$ : le nom du partage sur cet hôte | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | DELETE | ||
| + | || | ||
| + | Démonte le partage du système | ||
| + | || | ||
| + | *200 : si le démontage réussie | ||
| + | *400 : si le démontage échoue | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |} | ||
| + | |||
| + | = Youtube = | ||
| + | Permet de récupérer des informations sur les vidéo Youtube | ||
| + | {|class="wikitable" width="100%" | ||
| + | |-valign=top | ||
| + | ! URL !! Corps !! Verbe !! Action !! Code retour !! Implémentée | ||
| + | |- | ||
| + | || | ||
| + | /api/youtube/info/$$ID$$ | ||
| + | * $$ID$$ : un lien ou ID de vidéo Youtube (https://www.youtube.com/watch?v=eVGrSCrRiy8 ou eVGrSCrRiy8) | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Récupère des informations sur la vidéo Youtube. Voici un exemple: | ||
| + | |||
| + | { | ||
| + | |||
| + | "url":"https:\/\/www.youtube.com\/watch?v=eVGrSCrRiy8", | ||
| + | |||
| + | "cover":"https:\/\/i.ytimg.com\/vi\/eVGrSCrRiy8\/maxresdefault.jpg", | ||
| + | |||
| + | "author":"ElectroDanceMixes", | ||
| + | |||
| + | "title":"FESTIVAL MIX - Best EDM & Electro House Dance Party Mix 2018", | ||
| + | |||
| + | "id":"eVGrSCrRiy8", | ||
| + | |||
| + | "videos":["..."] | ||
| + | |||
| + | } | ||
| + | || | ||
| + | *200 : si la vidéo existe | ||
| + | *200 : si la vidéo n'existe pas | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/youtube/cover/$$ID$$ | ||
| + | * $$ID$$ : un lien ou ID de vidéo Youtube (https://www.youtube.com/watch?v=eVGrSCrRiy8 ou eVGrSCrRiy8) | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Récupère la ''pochette'' de la vidéo | ||
| + | || | ||
| + | *200 : si la vidéo existe | ||
| + | *200 : si la vidéo n'existe pas | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/youtube/listen/$$ID$$ | ||
| + | * $$ID$$ : un lien ou ID de vidéo Youtube (https://www.youtube.com/watch?v=eVGrSCrRiy8 ou eVGrSCrRiy8) | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Récupère le contenu de la vidéo | ||
| + | || | ||
| + | *200 : si la vidéo existe | ||
| + | *200 : si la vidéo n'existe pas | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |} | ||
| + | =Player= | ||
| + | Joue la musique sur la carte son du Pi (intégration VLC) | ||
| + | {|class="wikitable" width="100%" | ||
| + | |-valign=top | ||
| + | ! URL !! Corps !! Verbe !! Action !! Code retour !! Implémentée | ||
| + | |- | ||
| + | || | ||
| + | /api/player/pause | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Met en pause la music | ||
| + | || | ||
| + | *200 | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/player/stop | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Stop la lecture | ||
| + | || | ||
| + | *200 | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/player/volume/$$PERCENT$$ | ||
| + | *$$PERCENT$$ : le volume en poucentage | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Règle le volume du lecteur | ||
| + | || | ||
| + | *200 | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/player/device/$$UUID$$ | ||
| + | *$$UUID$$ : un UUID de périphérique | ||
| + | || | ||
| + | *path : un chemin sur le périphérique | ||
| + | |align='center'| | ||
| + | POST | ||
| + | || | ||
| + | Joue le fichier désigné par ''path'' sur le périphérique ''UUID'' | ||
| + | || | ||
| + | *200 : si le fichier et le périphérique existent | ||
| + | *400 : si le fichier ou le périphérique n'existe pas | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/player/share/$$HOST$$/$$SHARE$$ | ||
| + | *$$HOST$$ : un hôte supportant le protocole SMB/CIFS | ||
| + | *$$SHARE$$ : le nom du partage sur cet hôte | ||
| + | || | ||
| + | *path : un chemin sur le partage | ||
| + | |align='center'| | ||
| + | POST | ||
| + | || | ||
| + | Joue le fichier désigné par ''path'' sur le partage ''SHARE'' sur l'hôte ''HOST'' | ||
| + | || | ||
| + | *200 : si le fichier, le partage et l'hôte existent | ||
| + | *400 : si le fichier, le partage ou l'hôte n'existe pas | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/player/youtube/$$ID$$ | ||
| + | || | ||
| + | * $$ID$$ : un ID de vidéo Youtube (https://www.youtube.com/watch?v=mEYyVY9ffDM → mEYyVY9ffDM) | ||
| + | |align='center'| | ||
| + | POST | ||
| + | || | ||
| + | Joue le son de la vidéo, quand c'est possible (certaines vidéos ne fonctionnent pas) | ||
| + | || | ||
| + | * 200 : si la vidéo existe | ||
| + | * 400 : si le vidéo n'existe pas | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/player/url | ||
| + | || | ||
| + | * path : un lien vers un fichier musical | ||
| + | |align='center'| | ||
| + | POST | ||
| + | || | ||
| + | Joue le fichier | ||
| + | || | ||
| + | * 200 : si la fichier existe | ||
| + | * 400 : si le fichier n'existe pas | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |} | ||
| + | |||
| + | =Indexer (WIP)= | ||
| + | Permet d'avoir des informations sur les travaux d'indexation en cours. Voici un exemple: | ||
| + | * d'identifiant de travail → 5c2e724887be4; | ||
| + | * d'informations sur un travail → {"files":{"directory":"\/opt\/mount\/192.168.1.252-torrent\/\/Best of POP JCF","total":8,"current":[],"processed":8,"remaining":0,"success":[1,2,3,4,5,6,7,8],"failure":[]},"time":{"start":1546547784,"elapsed":1,"end":1546547785},"state":2} | ||
| + | {|class="wikitable" width="100%" | ||
| + | |-valign=top | ||
| + | ! URL !! Corps !! Verbe !! Action !! Code retour !! Implémentée | ||
| + | |- | ||
| + | || | ||
| + | /api/index/run | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Retourne la liste des identifiants des travaux en cours | ||
| + | || | ||
| + | *200 | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/index/info | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Récupère la liste des identifiants des travaux disponibles pour consultation | ||
| + | || | ||
| + | *200 | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/index/info/$$ID$$ | ||
| + | *$$ID$$ : l'identifiant du travail | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | GET | ||
| + | || | ||
| + | Récupère les informations liées au travail désigné par $$ID$$ | ||
| + | || | ||
| + | *200 : si l'identifiant existe | ||
| + | *400 : si l'identifiant n'existe pas | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/index/run/$$ID$$ | ||
| + | *$$ID$$ : l'identifiant du travail | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | DELETE | ||
| + | || | ||
| + | Stop le travail d'indexation désignè par $$ID$$ | ||
| + | || | ||
| + | *200 : si l'identifiant existe | ||
| + | *400 : si l'identifiant n'existe pas | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
| + | |- | ||
| + | || | ||
| + | /api/index/info/$$ID$$ | ||
| + | *$$ID$$ : l'identifiant du travail | ||
| + | || | ||
| + | *vide | ||
| + | |align='center'| | ||
| + | DELETE | ||
| + | || | ||
| + | Supprime les informations liées au travail désigné par $$ID$$ | ||
| + | || | ||
| + | *200 : si l'identifiant existe | ||
| + | *400 : si l'identifiant n'existe pas | ||
| + | || | ||
| + | [[Fichier:implemented_green_tick.png|center|40px]] | ||
Version actuelle datée du 13 janvier 2019 à 11:45
User
L'objet user est composé comme suit : {"id":"1","pseudo":"tala","email":"tala@tala.com","id_image":null}
| URL | Corps | Verbe | Action | Code retour | Implémentée |
|---|---|---|---|---|---|
|
/api/user |
|
GET |
Retourne un tableau avec tous les objets utilisateur |
|
|
|
/api/user/$$ID$$
|
|
GET |
Retourne un objet utilisateur |
|
|
|
/api/user/ |
|
POST |
Crée un nouvel utilisateur et renvoie son identifiant |
|
|
|
/api/user/email/$$ID$$
|
|
PUT |
Modifie l'email du compte |
|
|
|
/api/user/password/$$ID$$
|
|
PUT |
Modifie le mot de passe du compte |
|
|
|
/api/user/$$ID$$
|
|
DELETE |
Efface l'utilisateur |
|
Genre
L'objet genre est composé comme suit : {"id": "1", "name": "Electro-Jazz"}
| URL | Corps | Verbe | Action | Code retour | Implémentée |
|---|---|---|---|---|---|
|
/api/genre |
|
GET |
Retourne un tableau avec tous les objets genre |
|
|
|
/api/genre/$$ID$$
|
|
GET |
Retourne un objet genre |
|
|
|
/api/genre/like/$$EXPR$$
|
|
GET |
Retourne un tableau d'objets genre |
|
|
|
/api/genre |
|
POST |
Créé un nouvel objet genre |
|
|
|
/api/genre/$$ID$$
|
|
PUT |
Modifie le nom du genre |
|
|
|
/api/genre/$$ID$$
|
|
DELETE |
Efface le genre |
|
Artist
L'objet artiste est composé comme suit : {"id":"84","name":"Yolanda Be Cool & Dcup","id_image":null}
| URL | Corps | Verbe | Action | Code retour | Implémentée |
|---|---|---|---|---|---|
|
/api/artist |
|
GET |
Retourne un tableau avec tous les objets artiste |
|
|
|
/api/artist/$$ID$$
|
|
GET |
Retourne un objet artiste |
|
|
|
/api/artist/like/$$EXPR$$
|
|
GET |
Retourne un tableau d'objets artiste |
|
|
|
/api/artist |
|
POST |
Créé un nouvel objet artiste |
|
|
|
/api/artist/name/$$ID$$
|
|
PUT |
Modifie le nom de l'artiste |
|
|
|
/api/artist/image/$$ID$$
|
|
PUT |
Modifie l'image de l'artiste |
|
|
|
/api/genre/$$ID$$
|
|
DELETE |
Efface l'artiste |
|
Album
L'objet album est composé comme suit : {"id":"1","album":"Electro Swing Collection 1","coverId":null}
| URL | Corps | Verbe | Action | Code retour | Implémentée |
|---|---|---|---|---|---|
|
/api/album |
|
GET |
Retourne un tableau avec tous les objets album |
|
|
|
/api/album/$$ID$$
|
|
GET |
Retourne un objet album |
|
|
|
/api/album/artist/$$ID$$
|
|
GET |
Retourne un tableau d'objets album |
|
|
|
/api/album/genre/$$ID$$
|
|
GET |
Retourne un tableau d'objets album |
|
|
|
/api/album/like/$$EXPR$$
|
|
GET |
Retourne un tableau d'objets album |
|
|
|
/api/album |
|
POST |
Créé un nouvel objet album |
|
|
|
/api/album/name/$$ID$$
|
|
PUT |
Modifie le nom de l'album |
|
|
|
/api/album/image/$$ID$$
|
|
PUT |
Modifie l'image de l'album |
|
|
|
/api/genre/$$ID$$
|
|
DELETE |
Efface l'album |
|
Music
L'objet musique est composé comme suit : {"id":"1","title":"All Night","artists":["1"],"genres":["1"],"bitrate":"128","hit":"4","duration":"163","id_image":"1"}
| URL | Corps | Verbe | Action | Code retour | Implémentée |
|---|---|---|---|---|---|
|
/api/music/info/$$ID$$
|
|
GET |
Retourne un objet musique au format Json |
|
|
|
/api/music/content/$$ID$$
|
|
GET |
Retourne le contenu de la musique (fichier son) |
|
|
|
/api/music/album/$$ID$$
|
|
GET |
Retourne un tableau d'objet musiques au format Json appartenant à l'album associé à l'identifiant |
|
|
|
/api/music/artist/$$ID$$
|
|
GET |
Retourne un tableau d'objet musiques au format Json dont le créateur est l'artiste associé à l'identifiant |
|
Image
L'objet image est composé comme suit : {"id": "1", "content": "/9j/4B4…T0+7RRW/2Q==","mime":"image\jpeg","hash":"0aebaad7…4f265bd"} }
| URL | Corps | Verbe | Action | Code retour | Implémentée |
|---|---|---|---|---|---|
|
/api/images |
|
GET |
Retourne un tableau avec tous les objets image |
|
|
|
/api/image/info/$$ID$$
|
|
GET |
Retourne un objet image |
|
|
|
/api/image/content/$$ID$$
|
|
GET |
Retourne le contenu du fichier avec le type mime en entête |
|
|
|
/api/image |
|
POST |
Créé un nouvel objet image |
|
|
|
/api/image/$$ID$$
|
|
PUT |
Modifie l'image |
|
|
|
/api/image/$$ID$$
|
|
DELETE |
Efface l'image |
|
Device
L'objet périphérique est composé comme suit : {"name":"\/dev\/sda1","label":"MUSIC","size":"7.2 GiB","UUID":"84B9-A853","fstype":"vfat"}
| URL | Corps | Verbe | Action | Code retour | Implémentée |
|---|---|---|---|---|---|
|
/api/device |
|
GET |
Retourne un tableau avec tous les périphériques |
|
|
|
/api/device/list/$$UUID$$
|
|
GET |
Retourne un tableau avec la liste récursive des fichiers |
|
|
|
/api/device/explore/$$UUID$$
|
|
GET |
Retourne un tableau avec la liste des fichiers et dossiers: {"directories":["Pop","Rock"],"files":["Gala - Freed From Desire.mp3","13)Jacques Your Body (Make Me Sweat)(Jcf Pitch Edit).mp3"]} |
|
|
|
/api/device/content/$$UUID$$
|
|
GET |
Retourne le contenu du fichier avec le type mime en entête |
|
|
|
/api/device/tag/$$UUID$$
|
|
GET |
Retourne un tableau contenant les tags du ou des fichiers présent dans le répertoire |
|
|
|
/api/device/size/$$UUID$$
|
|
GET |
Retourne la taille du fichiers ou répertoire |
|
|
|
/api/device/mounted |
|
GET |
Retourne un tableau avec la liste des périphériques montés |
|
|
|
/api/device/umounted |
|
GET |
Retourne un tableau avec la liste des périphériques démontés |
|
|
|
/api/device/mount/$$UUID$$
|
|
POST |
Monte le périphérique sur le système |
|
|
|
/api/device/enable/$$UUID$$
|
|
POST |
Active le montage du périphérique au démarrage du système |
|
|
|
/api/device/index/$$UUID$$
|
|
POST |
Index le répertoire ou le fichier désigné par le paramètre path |
|
|
|
/api/device/mount/$$UUID$$
|
|
DELETE |
Démonte le périphérique du système |
|
|
|
/api/device/enable/$$UUID$$
|
|
DELETE |
Désactive le montage du périphérique au démarrage du système |
|
L'objet partage est composé comme suit : {"host":"hades","share":"downloads","login":"nobody"}
| URL | Corps | Verbe | Action | Code retour | Implémentée |
|---|---|---|---|---|---|
|
/api/share |
|
GET |
Retourne un tableau avec tous les partages montés |
|
|
|
/api/share/list/$$HOST$$
|
|
GET |
Retourne un tableau avec la liste des partages disponibles sur l'hôte |
|
|
|
/api/share/list/$$HOST$$/$$SHARE$$
|
|
GET |
Retourne un tableau avec la liste récursive de tous les fichiers disponibles sur le partage Attention, l'appel peut être long, surtout lorsque les partages contiennent beaucoup de fichiers |
|
|
|
/api/device/explore/$$HOST$$/$$SHARE$$
|
|
GET |
Retourne un tableau avec la liste des fichiers |
|
|
|
/api/share/content/$$HOST$$/$$SHARE$$
|
|
GET |
Retourne le contenu du fichier avec le type mime en entête |
|
|
|
/api/share/tag/$$HOST$$/$$SHARE$$
|
|
GET |
Retourne un tableau contenant les tags du ou des fichiers présent dans le répertoire |
|
|
|
/api/share/size/$$HOST$$/$$SHARE$$
|
|
GET |
Retourne la taille du fichiers ou répertoire |
|
|
|
/api/share/$$HOST$$/$$SHARE$$
|
|
POST |
Monte le partage sur le système. Si aucun couple d'authentification n'est fourni, nobody sera utilisé |
|
|
|
/api/share/index/$$HOST$$/$$SHARE$$
|
|
POST |
Index le répertoire ou le fichier désigné par le paramètre path |
|
|
|
/api/share/$$HOST$$/$$SHARE$$
|
|
DELETE |
Démonte le partage du système |
|
Youtube
Permet de récupérer des informations sur les vidéo Youtube
| URL | Corps | Verbe | Action | Code retour | Implémentée |
|---|---|---|---|---|---|
|
/api/youtube/info/$$ID$$
|
|
GET |
Récupère des informations sur la vidéo Youtube. Voici un exemple: { "url":"https:\/\/www.youtube.com\/watch?v=eVGrSCrRiy8", "cover":"https:\/\/i.ytimg.com\/vi\/eVGrSCrRiy8\/maxresdefault.jpg", "author":"ElectroDanceMixes", "title":"FESTIVAL MIX - Best EDM & Electro House Dance Party Mix 2018", "id":"eVGrSCrRiy8", "videos":["..."] } |
|
|
|
/api/youtube/cover/$$ID$$
|
|
GET |
Récupère la pochette de la vidéo |
|
|
|
/api/youtube/listen/$$ID$$
|
|
GET |
Récupère le contenu de la vidéo |
|
Player
Joue la musique sur la carte son du Pi (intégration VLC)
| URL | Corps | Verbe | Action | Code retour | Implémentée |
|---|---|---|---|---|---|
|
/api/player/pause |
|
GET |
Met en pause la music |
|
|
|
/api/player/stop |
|
GET |
Stop la lecture |
|
|
|
/api/player/volume/$$PERCENT$$
|
|
GET |
Règle le volume du lecteur |
|
|
|
/api/player/device/$$UUID$$
|
|
POST |
Joue le fichier désigné par path sur le périphérique UUID |
|
|
|
/api/player/share/$$HOST$$/$$SHARE$$
|
|
POST |
Joue le fichier désigné par path sur le partage SHARE sur l'hôte HOST |
|
|
|
/api/player/youtube/$$ID$$ |
|
POST |
Joue le son de la vidéo, quand c'est possible (certaines vidéos ne fonctionnent pas) |
|
|
|
/api/player/url |
|
POST |
Joue le fichier |
|
Indexer (WIP)
Permet d'avoir des informations sur les travaux d'indexation en cours. Voici un exemple:
- d'identifiant de travail → 5c2e724887be4;
- d'informations sur un travail → {"files":{"directory":"\/opt\/mount\/192.168.1.252-torrent\/\/Best of POP JCF","total":8,"current":[],"processed":8,"remaining":0,"success":[1,2,3,4,5,6,7,8],"failure":[]},"time":{"start":1546547784,"elapsed":1,"end":1546547785},"state":2}
| URL | Corps | Verbe | Action | Code retour | Implémentée |
|---|---|---|---|---|---|
|
/api/index/run |
|
GET |
Retourne la liste des identifiants des travaux en cours |
|
|
|
/api/index/info |
|
GET |
Récupère la liste des identifiants des travaux disponibles pour consultation |
|
|
|
/api/index/info/$$ID$$
|
|
GET |
Récupère les informations liées au travail désigné par $$ID$$ |
|
|
|
/api/index/run/$$ID$$
|
|
DELETE |
Stop le travail d'indexation désignè par $$ID$$ |
|
|
|
/api/index/info/$$ID$$
|
|
DELETE |
Supprime les informations liées au travail désigné par $$ID$$ |
|