Aller directement à la fin des métadonnées
Aller au début des métadonnées

Un changement important est le format de sortie en cas de message d'erreur.

Dans les versions précédentes, le retour était un object encodé du type:
DOC_rest_response {
    error: null|bool
    error_code: null|int 
    error_description: null|string
    resource: {} 

}

En cas d'erreur, resource sera toujours null
error vallait true, et va désormais contenir le message d'erreur qui était auparavant fourni par error_description.
error_code continuera d'avoir un entier corresponsant au code d'erreur.
error_description contiendra désormais un texte un peu plus verbeux à propos de l'erreur remontée.

Erreurs possibles:

  • "Not found"
  • "Bad Request"
  • "Forbidden"
  • "Not Implemented"
  • "Unauthorized"
  • "Method Not Allowed"
  • "Not Acceptable"

2 - API (forum)

2-1 Tag de sujets

Ce type de service est accessible via les URLs suivantes:

  • _GET: http://<url_forum>/api/forums/<forum_name>[/categories/<id_cat>]/tag/<tag_rewritten>/.
    • La fonction list() sera appelée et renverra une liste paginée (seront donc acceptés aussi ?page=<int>&results_per_page=<int>):
      • Si forum_name et id_cat sont fournis:
        • Liste des topics attachés à ce tag dans la catégorie spécifiée. 
      • Si uniquement forum_name est fourni: 
        • Liste paginée des topics attachés à ce tag dans le forum spécifié.
  • _GET: http://<url_forum>/api/forums/<forum_name>/categories/<id_cat>/topics/<id_topic>/tags/.
    • La fonction list() sera appelée et renverra une liste paginée des tags attachés au sujet spécifié (seront donc acceptés aussi ?page=<int>&results_per_page=<int>).
  • _GET: http://<url_forum>/api/tags/[<tag_rewritten>/(<tag_rewritten> sera alors considéré comme le resource_identifier
    • Si le resource identifier n'est pas fourni
      • Si ?q=<string> est fourni, la fonction search() sera appelée et renverra un tableau de liens* (seront donc acceptés aussi ?page=<int>&results_per_page=<int>).
      • Sinon la fonction list() sera appelée et renverra une liste paginée des tags (seront donc acceptés aussi ?page=<int>&results_per_page=<int>).
    • Sinon
      • la fonction get() est appelée et renverra:

{'id', 'name', 'description', 'rewritten', 'validated', 'counter', 'type'}

  • _POST: http://<url_forum>/api/tags/

Est attendu dans php://input/ un json_encode() d'un tableau contenant les informations/clés suivantes: 
name, description

Toute autre information/clé sera ignorée.
Seuls les membres de l'équipes ayant le 'Droit de gérer les tags' pourront accéder à cette fonctionnalité. 

La page renverra l'état de la resource après sa création:

{'id', 'name', 'description', 'rewritten', 'validated', 'counter''type'}

  • _PUT/_PATCH: http://<url_forum>/api/tags/<tag_rewritten>/. (<tag_rewritten> sera alors considéré comme le resource_identifier)

Est attendu dans php://input/ un json_encode() d'un tableau contenant les informations/clés suivantes: 
name, description, attach, detach. (avec attach ou detach étant des tableaux de computed_id de sujets auxquels associer/désassocier le tag en question)

Toute autre information/clé sera ignorée.
Seuls les membres de l'équipes ayant le 'Droit de gérer les tags' pourront accéder à cette fonctionnalité. 

La page renverra l'état de la resource après mis à jour:

{'id', 'name', 'description', 'rewritten', 'validated', 'counter''type'}

  • _DELETE: http://<url_forum>/api/tags/<tag_rewritten>/. (<tag_rewritten> sera alors considéré comme le resource_identifier)

Seuls les membres de l'équipes ayant le 'Droit de gérer les tags' pourront accéder à cette fonctionnalité. 

La page renverra l'état de la resource avant sa suppression:

{'id', 'name', 'description', 'rewritten', 'validated', 'counter''type'}

 

2-2 Les brouillons

Ce type de service est accessible via les URLs suivantes, et ce UNIQUEMENT aux personnes connectées et propriétaires des brouillons demandés/reçus:

  • _GET: http://<url_forum>/api/forums/<forum_name>[/categories/<id_cat>[/subcategories/<id_subcat>]]/drafts/.
    • la fonction list() sera appelée et renverra une liste paginée des brouillons de l'utilisateur connecté (seront donc acceptés aussi ?page=<int>&results_per_page=<int>) dans le contexte forum requis.
  • _GET: http://<url_forum>/api/drafts/[<id_draft>/(<id_draft> sera alors considéré comme le resource_identifier
    • la fonction get() est appelée et renverra:

{'id', 'title', 'content', 'html_content', 'custom_rewriting', 'icon', 'sondage', 'tags', 'toread', 'signature', 'smileys', 'sticky', 'display_everywhere', 'creation_date', 'last_date', 'type', 'links'}

  • _POST: http://<url_forum>/api/drafts/

Est attendu dans php://input/ un json_encode() d'un tableau contenant les informations/clés suivantes: 
title, content, custom_rewriting, icon, sondage, tags, toread, signature, smileys, sticky, display_everywhere, id_forum, id_category, id_subcategory, subcatgroup

Toute autre information/clé sera ignorée.

La page renverra l'état de la resource après sa création:

{'id', 'title', 'content', 'html_content', 'custom_rewriting', 'icon', 'sondage', 'tags', 'toread', 'signature', 'smileys', 'sticky', 'display_everywhere', 'creation_date', 'last_date', 'type', 'links'}

  • _PUT/_PATCH: http://<url_forum>/api/drafts/<id_draft>/. (<id_draft> sera alors considéré comme le resource_identifier)

Est attendu dans php://input/ un json_encode() d'un tableau contenant les informations/clés suivantes: 
title, content, custom_rewriting, icon, sondage, tags, toread, signature, smileys, sticky, display_everywhere, transform_to_topic. (transform_to_topic ne sera pris en compte que s'i existe et vaut true)

Toute autre information/clé sera ignorée.
Seuls les membres connectés pourront accéder à cette fonctionnalité, et uniquement si la resource leur appartient. 

La page renverra l'état de la resource après mis à jour:

{'id', 'title', 'content', 'html_content', 'custom_rewriting', 'icon', 'sondage', 'tags', 'toread', 'signature', 'smileys', 'sticky', 'display_everywhere', 'creation_date', 'last_date', 'type', 'links'} en cas de brouillon. Se référer à la resource sur les sujets en cas de transformation.

  • _DELETE: http://<url_forum>/api/drafts/<id_draft>/(<id_draft> sera alors considéré comme le resource_identifier)

Seuls les membres connectés et propriétaires de la resource demandée pourront accéder à cette fonctionnalité. 

La page renverra l'état de la resource avant sa suppression:

{'id', 'title', 'content', 'html_content', 'custom_rewriting', 'icon', 'sondage', 'tags', 'toread', 'signature', 'smileys', 'sticky', 'display_everywhere', 'creation_date', 'last_date', 'type', 'links'}

2-3 Les "flags"

Ce type de service est accessible via les URLs suivantes, et ce UNIQUEMENT aux personnes connectées :

  • _GET: http://<url_forum>/api/forums/flags/(participated|favorites|read)/?v=3.
    • la fonction list() sera appelée et renverra une liste des sujets favoris/participés/lus de l'utilisateur connecté sous forme de resource Topic.

Si la resource en réponse contient l'entrée "next_page_href", il s'agit de l'URL pour avoir la suite des sujets favoris/participés/lus. Si l'entrée n'est pas là, c'est que tous les sujets ont été retournés ou qu'il était impossible de déterminer si il en restait ou non.

Les arguments disponibles à l'appel sont :

  • results_per_page : Indique le nombre de retour maximum souhaités.

    Ce service n'est pas paginé

    Le service "flags" permet de récupérer une liste de sujets et fourni l'url pour avoir la suite, malgré tout, il n'est pas possible de demander précisément une page de cette liste, nous disposons de la suite mais les retour en arrière ne sont pas possibles. Pour avoir la "page" suivante, il faut indiquer en argument (voir ci-dessous) les derniers sujets récupérés.

  • end_forum, end_category et end_topic : En indiquant ces 3 arguments, vous pouvez récupérer la liste des sujets concernés. La nouvelle liste commencera aprêt le forum|catégorie|sujet demandé. L'url contenant ces arguments est automatiquement fourni par l'appel au service en fin de flux sous le nom "next_page_href" (si l'information n'est pas là, c'est que le flux retourné contient déjà moins de sujet que demandé et donc qu'il n'y a pas de suite. L'utilisateur du service peut utiliser cette URL ou déterminer de lui même les informations selon le dernier topic fourni par le service.

  • Aucune étiquette