Je vous propose une nouvelle révision en espérant avoir compris toutes vos remarques.
Cartouche |
|
ZEP |
23 |
Titre |
Elaboration de l'API des MPs |
Révision |
3 |
Date de création |
15 Janvier 2015 |
Dernière révision |
6 Février 2015 |
Type |
Feature |
Statut |
Rédaction |
Contexte
Cette ZEP ci-présente est une ZEP fille de la ZEP-02 qui concerne l'élaboration d'une API au sens large, c'est-à-dire qu'elle traite toutes les questions générales comme l'authentification, les codes HTTPs, les erreurs, la sécurité, etc.
Suite à la ZEP 17 sur l'élaboration d'une API pour les membres, cette ZEP 23 voit le jour pour la rédaction de l'API des MPs.
API des MPs
Objectif
Permettre aux clients de récupérer, ajouter, modifier ou supprimer les MPs d'un membre donné et d'effectuer une première association entre deux modules puisque des MPs sont détenus par des membres.
Représentations
Sujet d'un MP
Exemple d'objet
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 | {
"pk": 654321,
"title": "Titre du MP",
"subtitle": "Sous-titre du MP",
"pubdate": "1977-04-22T06:00:00Z",
"author": {
"pk": 42,
"username": "Clem",
"self": "http://api.zestedesavoir.com/membres/42"
},
"participants": [
{
"pk": 42,
"username": "Clem",
"self": "http://api.zestedesavoir.com/membres/42"
},
{
"pk": 5,
"username": "Andr0",
"self": "http://api.zestedesavoir.com/membres/5"
}
],
"last_message": 123456,
}
|
Colonnes
Colonne |
Type |
Description |
pk |
long |
Identifiant du sujet |
title |
String |
Titre du MP |
subtitle |
String |
Sous-titre du MP |
pubdate |
Date |
Date de publication du MP |
author |
User |
Auteur du MP |
participants |
Array User |
Liste des participants du MP |
last_message |
Message |
Dernier message du MP |
Message d'un MP
Exemple d'objet
1
2
3
4
5
6
7
8
9
10
11
12
13
14 | {
"pk": 123456,
"privatetopic": 654321,
"text": "# Contenu du message", # En fonction du paramètre X-Data-Format
"text_html": "<h1>Contenu du message</h1>", # En fonction du paramètre X-Data-Format
"pubdate": "1977-04-22T06:00:00Z",
"update": "1977-04-22T06:00:00Z",
"position_in_topic": 1,
"author": {
"pk": 42,
"username": "Clem",
"self": "http://api.zestedesavoir.com/membres/42"
}
}
|
Colonnes
Colonne |
Type |
Description |
pk |
long |
Identifiant du message |
privatetopic |
long |
Identifiant du sujet |
text |
String |
Contenu du message en Markdown |
text_html |
String |
Contenu du message en HTML |
pubdate |
Date |
Date de publication du message |
update |
Date |
Date de dernière édition du message |
position_in_topic |
entier |
Position du message dans le sujet |
Etendre des objets
Par défaut, les objets d'une autre ressource contenus dans une réponse (dans ce cas présent, les objets sur les membres avec participants
et author
) renvoient le minimum d'information, à savoir l'identifiant, le pseudonyme et l'URL de la ressource correspondante.
Cependant, il sera possible de renseigner une query expand
pour récupérer toutes les informations de l'attribut donné. Par exemple, si expand
prend la valeur author
, toutes les informations concernant l'auteur seront renvoyées.
Lister les MPs d'un membre
Fonctionnalité : Renvoie une liste paginée pour lister les MPs d'un membre connecté par 10.
URL : http://api.zestedesavoir.com/mps/
Méthode : GET
Headers :
- Authorization: Bearer < access_token >
Paramètres :
- page : Affiche les MPs de la page voulue.
- filter :
- lu : Filtre tous les messages lus.
- non-lu : Filtre tous les messages non lus.
- date : Récupère les messages à partir de cette date.
- sort :
- creation : Tri la liste par date de création.
- modification : Tri la liste par date de modification.
- last-message : Tri la liste par date du dernier message.
- titre : Tri par ordre alphabétique.
- search :
- titre : Recherche les conversations privées par leurs noms.
Codes HTTP :
- 200 : La réponse est renvoyée sans problème.
- 401 : Problème avec l'authentification.
- 403 : Pas les permissions nécessaires.
- 404 : Le MP n'existe pas.
Permissions nécessaires :
- Être authentifié
- Être auteur ou dans les participants des MPs
Afficher un MP donné
Fonctionnalité : Renvoie les informations concernant un MP donné. Le message est alors considéré comme lu par le système pour l'utilisateur qui fait la requête.
URL : http://api.zestedesavoir.com/mps/{id}
Méthode : GET
Headers :
- Authorization: Bearer < access_token >
Paramètres :
- id : Identifiant du message privé
Codes HTTP :
- 200 : La réponse est renvoyée sans problème.
- 401 : Problème avec l'authentification.
- 403 : Pas les permissions nécessaires.
- 404 : Le MP n'existe pas.
Permissions nécessaires :
- Être authentifié
- Être auteur ou dans les participants des MPs
Création d'un nouveau MP
Fonctionnalité : Création d'un nouveau MP avec plusieurs participants
URL : http://api.zestedesavoir.com/mps/
Méthode : POST
Headers :
- Authorization: Bearer < access_token >
Paramètres :
- participants : Liste des membres participants à la conversation
- title : Titre du MP
- subtitle : Sous-titre du MP (facultatif)
- text : Contenu du MP.
Codes HTTP :
- 200 : La réponse est renvoyée sans problème.
- 400 : Dès qu'il y a un problème avec les paramètres de la requête.
- 401 : Problème avec l'authentification.
- 403 : Pas les permissions nécessaires.
- 404 : Si un participant n'existe pas.
Permissions nécessaires :
Edition d'un MP
Fonctionnalité : Ajoute un ou plusieurs participants dans un MP donné.
URL : http://api.zestedesavoir.com/mps/{id}/
Méthode : PUT
Headers :
- Authorization: Bearer < access_token >
Paramètres :
- id : Identifiant de la conversation
- participants : Liste des membres à ajouter dans la conversation.
Codes HTTP :
- 200 : La réponse est renvoyée sans problème.
- 400 : Dès qu'il y a un problème avec les paramètres de la requête.
- 401 : Problème avec l'authentification.
- 403 : Pas les permissions nécessaires.
- 404 : Si un participant n'existe pas.
Permissions nécessaires :
- Être authentifié
- Être auteur ou dans les participants des MPs
Quitter une liste de MPs
Fonctionnalité : Se retirer d'une liste de conversations.
URL : http://api.zestedesavoir.com/mps/
Méthode : DELETE
Headers :
- Authorization: Bearer < access_token >
Paramètres :
- pks : La liste des identifiants des conversations à quitter séparé par une virgule.
Codes HTTP :
- 200 : La réponse est renvoyée sans problème.
- 401 : Problème avec l'authentification.
- 403 : Pas les permissions nécessaires.
- 404 : L'un des MPs n'existe pas.
Permissions nécessaires :
- Être authentifié
- Être auteur ou dans les participants des MPs
Quitter un MP
Fonctionnalité : Se retirer d'une conversation.
URL : http://api.zestedesavoir.com/mps/{id}/
Méthode : DELETE
Headers :
- Authorization: Bearer < access_token >
Paramètres :
- id : Identifiant de la conversation
Codes HTTP :
- 200 : La réponse est renvoyée sans problème.
- 400 : Dès qu'il y a un problème avec les paramètres de la requête.
- 401 : Problème avec l'authentification.
- 403 : Pas les permissions nécessaires.
- 404 : Le MP n'existe pas.
Permissions nécessaires :
- Être authentifié
- Être auteur ou dans les participants des MPs
Lister les messages d'un MP donné
Fonctionnalité : Renvoie une liste paginée pour lister les messages d'un MP par 10.
URL : http://api.zestedesavoir.com/mps/{id}/messages/
Méthode : GET
Headers :
- Authorization: Bearer < access_token >
Paramètres :
- id : Identifiant d'une conversation.
- page : Affiche les MPs de la page voulue.
Codes HTTP :
- 200 : La réponse est renvoyée sans problème.
- 401 : Problème avec l'authentification.
- 403 : Pas les permissions nécessaires.
- 404 : Le MP n'existe pas ou la page n'existe pas.
Permissions nécessaires :
- Être authentifié
- Être auteur ou dans les participants des MPs
Afficher le message d'un MP donné
Fonctionnalité : Renvoie les informations concernant un MP donné.
URL : http://api.zestedesavoir.com/mps/{id}/messages/{id-mes}/
Méthode : GET
Headers :
- Authorization: Bearer < access_token >
- X-Data-Format : Renseigne le format désiré pour le message (HTML ou Markdown)
Paramètres :
- id : Identifiant d'une conversation
- id-mes : Identifiant du message privé
Codes HTTP :
- 200 : La réponse est renvoyée sans problème.
- 401 : Problème avec l'authentification.
- 403 : Pas les permissions nécessaires.
- 404 : Le MP n'existe pas ou le message n'existe pas.
Permissions nécessaires :
- Être authentifié
- Être auteur ou dans les participants des MPs
Ajouter un nouveau message dans un MP
Fonctionnalité : Ajoute un message dans un MP de l'utilisateur.
URL : http://api.zestedesavoir.com/mps/{id}/messages/
Méthode : POST
Headers :
- Authorization: Bearer < access_token >
Paramètres :
- id : Identifiant d'une conversation
- id-mes :
- text : Contenu du message
Codes HTTP :
- 200 : La réponse est renvoyée sans problème.
- 400 : Dès qu'il y a un problème avec les paramètres de la requête.
- 401 : Problème avec l'authentification.
- 403 : Pas les permissions nécessaires.
- 404 : Le MP n'existe pas.
Permissions nécessaires :
- Être authentifié
- Être auteur ou dans les participants des MPs
Editer un message dans un MP
Fonctionnalité : Editer le dernier message d'un MP si c'est celui de l'utilisateur.
URL : http://api.zestedesavoir.com/mps/{id}/messages/{id-mes}/
Méthode : PUT
Headers :
- Authorization: Bearer < access_token >
Paramètres :
- id : Identifiant d'une conversation
- id-mes : Identifiant du message privé
- text : Nouveau contenu du message
Codes HTTP :
- 200 : La réponse est renvoyée sans problème.
- 400 : Dès qu'il y a un problème avec les paramètres de la requête.
- 401 : Problème avec l'authentification.
- 403 : Pas les permissions nécessaires.
- 404 : Le MP n'existe pas.
Permissions nécessaires :
- Être authentifié
- Être auteur ou dans les participants des MPs