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

 


1 - API (club)


1-1 - Users

Ce type de service est accessible via les URLs suivantes:

  • _GET: http://<url_club>/api/users/
    • Si ?q=s=<string> est fourni, la fonction search() sera appelée et renverra un tableau de liens*
    • Sinon, une erreur NOT_IMPLEMENTED sera retournée: la fonction list() n'étant pas supportée.
  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/. (<pseudo_rewritten> sera alors considéré comme le resource_identifier)
    • Si le resource_identifier ne correspond pas à un objet, une erreur NOT_FOUND se retournée, sinon get() sera appelée et renverra: 

{'id', 'pseudo', 'pseudo_rewritten', 'status', 'forum_grade', 'signature', 'hash', 'html_signature', 'friend_comments_enabled', 'presentation', 'is_anonymous', 'is_friend_invited', 'is_friend_to_validate', 'is_friend', 'tns1', 'tns2', 'tns3', 'web_url', 'display_personal_website', 'display_country', 'display_city', 'display_postcode', 'display_email', 'display_sex', 'display_birthday', 'display_firstname', 'display_lastname', 'display_children', 'display_address1', 'display_address2', 'personal_website', 'country', 'city', 'postcode', 'email', 'sex', 'birthday', 'firstname', 'lastname', 'address1', 'address2', 'push_new_thread', 'push_friend_request', 'push_new_profil_comment', 'push_new_media_comment', 'push_new_friends_link', 'links', 'nb_unread_thread'}

avec 'links': {
'categories' => array('linked_type', 'type', 'href', 'count'),
'photos' => array('linked_type', 'type', 'href', 'count'),
'videos' => array('linked_type', 'type', 'href', 'count'),
'articles' => array('linked_type', 'type', 'href', 'count'),
'friends' => array('linked_type', 'type', 'href', 'count'),
'friends_to_validate' => array('linked_type', 'type', 'href', 'count'), (si utilisateur connecté)
'friends_invited' => array('linked_type', 'type', 'href', 'count'), (si utilisateur connecté)
'threads' => array('linked_type', 'type', 'href', 'count'), (si utilisateur connecté)
'feed' => array('linked_type', 'type', 'href', 'count'), (si utilisateur connecté)
'status_feed' => array('linked_type', 'type', 'href', 'count'), (si utilisateur connecté)
'medias_feed' => array('linked_type', 'type', 'href', 'count'), (si utilisateur connecté)
'avatars' => array('linked_type', 'type', 'href', 'count'), (si utilisateur connecté)
'children' => array('linked_type', 'type', 'href', 'count'), (si utilisateur connecté)
'notifications' => array('linked_type', 'type', 'href', 'count'), (si utilisateur connecté)
'user_feed' => array('linked_type', 'type', 'href'),
'comments' => array('linked_type', 'type', 'href', 'count')
}

'links' est en fait un groupe de liens pertinents concernant l'objet en cours vers d'autres pages de l'API. Dans notre cas, va nous permettre de retrouver les photos de notre utilisateur, ou encore ses MPs...

  • _GET: http://<url_club>/api/users/@me/

Retour identique au précédent, mais retourne les information de l'utilisateur courant. Cela nécessite donc d'envoyer le cookie CFSESSID pour détecter l'utilisateur connecté.

Si l'utilisateur n'est pas connecté, que le cookie CFSESSID n'est pas fourni ou que la session a expiré, cette page renverra une 404.

  •  _POST: http://<url_club>/api/users/

Est attendu dans php://input/ un json_encode() d'un tableau contenant les informations/clés suivantes: 
pseudo, email, password. 

et pouvant contenir l'une des informations/clés suivantes:
firstname, lastname, birthday, sex, postcode.

Toute autre information/clé sera ignorée.

  • _PUT/_PATCH: http://<url_club>/api/users/<pseudo_rewritten>/.

Est attendu dans php://input/ un json_encode() d'un tableau pouvant contenir au moins l'une des informations/clés suivantes:
firstname, lastname, birthday, sex, display_email, display_sex, display_birthday, display_firstname, display_lastname, display_personal_website, dispay_children, display_job, display_age, postcode, address1, address2, city, country (code ISO), display_country, display_city, display_postcode, display_address1, display_address2, status, personal_website, presentation, apns_device_token, gcm_device_token, capptain_device_token, localytics_device_token, capptain_app_id, localytics_app_id, push_new_thread, push_friend_request, push_new_profil_comment, push_new_media_comment, push_new_friends_link, push_new_mention, is_friend, is_friend_to_validate, is_friend_invited.

Toute autre information/clé sera ignorée.

 

1-2 - Children

Ce type de service est accessible via les URLs suivantes:

  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/children/
    • Seule la fonction list() est supportée et renverra donc une liste des enfants du user en question.
  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/children/<last|next>.
    • list() renverra une liste des derniers enfants nés (last) ou des enfants à naître (next) du user en question.
  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/children/<id_child>. (<id> sera alors considéré comme le resource_identifier)
    • Si le resource_identifier ne correspond pas à un objet, une erreur NOT_FOUND se retournée, sinon get() sera appelée et renverra: 

{'id_child', 'firstname', 'sex', 'birthday', 'display'}

  •  _POST: http://<url_club>/api/users/<pseudo_rewritten>/children/

Est attendu dans php://input/ un json_encode() d'un tableau contenant les informations/clés suivantes: 
firstname, sex, display et birthday. 

et pouvant contenir l'une des informations/clés suivantes:
firstname, lastname, birthday, sex, postcode.

Toute autre information/clé sera ignorée.

  • _PUT/_PATCH: http://<url_club>/api/users/<pseudo_rewritten>/children/<id_child>.

Est attendu dans php://input/ un json_encode() d'un tableau pouvant contenir au moins l'une des informations/clés suivantes:
firstname, sex, display et birthday.

Toute autre information/clé sera ignorée.

  • _DELETE: http://<url_club>/api/users/<pseudo_rewritten>/children/<id_child>.

 

1-3 - Groupes

Ce type de service est accessible via les URLs suivantes:

  • _GET: http://<url_club>/api/groups/
    • Si ?q=s=<string> est fourni, la fonction search sera appelée et renverra un tableau de liens*
    • Sinon, une erreur NOT_IMPLEMENTED sera retournée: la fonction list() n'étant pas supportée.
  • _GET: http://<url_club>/api/groups/<name_rewritten>/. (<name_rewritten> sera alors considéré comme le resource_identifier)
    • Si le resource_identifier ne correspond pas à un objet, une erreur NOT_FOUND se retournée, sinon get() sera appelée et renverra: 

{'name', 'name_rewritten', 'description', 'display_email', 'display_address1', 'display_address2', 'display_presentation', 'email', 'address1', 'address2', 'presentation', 'id', 'status', 'tns1', 'tns2', 'tns3', 'web_url', 'type', 'href', 'links'}

avec 'links': {
'comments' => array('linked_type', 'type', 'href', 'count'),
}


1-4 - Avatars

Ce type de service est accessible via les URLs suivantes:

  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/avatars/
    • Seule la fonction list() est supportée et renverra donc une liste paginée des avatars du user en question (seront donc acceptés aussi ?page=<int>&results_per_page=<int>).
  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/avatars/<id_avatar>/. (<id_avatar> sera alors considéré comme le resource_identifier)
    • Si le resource_identifier ne correspond pas à un objet, une erreur NOT_FOUND se retournée, sinon get() sera appelée et renverra: 

{'type', 'href', 'id', 'is_current', 'tns0', 'tns1', 'tns2', 'tns3'}

  •  _POST: http://<url_club>/api/users/<pseudo_rewritten>/avatars/

    N'attend rien d'autre que le résultat d'un upload de fichier ($_FILES).

  • _PUT/_PATCH: http://<url_club>/api/users/<pseudo_rewritten>/avatars/<id_avatar>/.

    Est attendu dans php://input/ un json_encode() d'un tableau contenant l'information/clé suivante:
    is_current.

    Toute autre information/clé sera ignorée.

  • _DELETE: http://<url_club>/api/users/<pseudo_rewritten>/avatars/<id_avatar>/.


1-5 - Commentaires

1-5-1 - Mood
1-5-2 - Commentaires
1-5-3 - Médias

Ce type de service est accessible via les URLs suivantes:

  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/categories/<id_category>/<media_type>/<id_media>-<media_salt>/comments/
    • Seule la fonction list() est supportée et renverra donc une liste paginée des friend comments du user en question (seront donc acceptés aussi ?page=<int>&results_per_page=<int>).
  • _POST: http://<url_club>/api/users/<pseudo_rewritten>/categories/<id_category>/<media_type>/<id_media>-<media_salt>/comments/


1-5-4 - Friend comments

Ce type de service est accessible via les URLs suivantes:

  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/comments/
    • Seule la fonction list() est supportée et renverra donc une liste paginée des friend comments du user en question (seront donc acceptés aussi ?page=<int>&results_per_page=<int>).
  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/comments/<id_comment>/. (<id_comment> sera alors considéré comme le resource_identifier)
    • Si le resource_identifier ne correspond pas à un objet, une erreur NOT_FOUND se retournée, sinon get() sera appelée et renverra: 

{'id', 'creation_date', 'content', 'parsed_content', 'type', 'href', 'attachments', 'links'}

avec 'links': {
'author' => array('linked_type', 'type', 'href', 'title', 'tns3'),
'commented_user' => array('linked_type', 'type', 'href', 'title', 'tns3'),
'comments' => array('linked_type', 'type', 'href', 'count')
}

  • _POST: http://<url_club>/api/users/<pseudo_rewritten>/comments/

    Est attendu dans php://input/ un json_encode() d'un tableau contenant l'information/clé suivante: 
    content.

    Toute autre information/clé sera ignorée.

     
  • _DELETE: http://<url_club>/api/users/<pseudo_rewritten>/comments/<id_comment>/.

 

1-6 - Activités

Ce type de service est accessible via les URLs suivantes:

  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/feed/
  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/feed/all/
  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/feed/status/.  (status|mood only)
  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/feed/medias/.  (new medias only)
    • Seule la fonction list() est supportée et renverra donc une liste paginée des activités du user en question (seront donc acceptés aussi ?page=<int>&results_per_page=<int>).
  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/friends/feed/
  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/friends/feed/all/
  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/friends/feed/status/.   (status|mood only)
  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/friends/feed/medias/. (new medias only)
    • Seule la fonction list() est supportée et renverra donc une liste paginée des activités des amis du user en question (seront donc acceptés aussi ?page=<int>&results_per_page=<int>).

1-7 - Amis

Ce type de service est accessible via les URLs suivantes:

  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/friends/
  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/friends/to_validate/
  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/friends/invited/
    • Seule la fonction list() est supportée et renverra donc une liste paginée des amis du user en question (seront donc acceptés aussi ?page=<int>&results_per_page=<int>).


1-8 - Messages Privés

Ce type de service est accessible via les URLs suivantes:

  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/threads/
    • Seule la fonction list() est supportée et renverra donc une liste paginée des sujets de MPs du user en question (seront donc acceptés aussi ?page=<int>&results_per_page=<int>).

{'page', 'results_count', 'results_per_page', 'resources', '', 'list_type', 'type', 'href', 'nb_unread_thread'}

avec resources décrit ci dessous. 
  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/threads/<id_thread>/. (<id_thread> sera alors considéré comme le resource_identifier)
    • Si le resource_identifier ne correspond pas à un objet, une erreur NOT_FOUND se retournée, sinon get() sera appelée et renverra: 

{'id', 'title', 'creation_date', 'last_message_date', 'last_message_read_id', 'is_closed', 'is_sticky', 'has_participated', 'type', 'href', 'last_message_id', 'links', 'participants'}

avec 'links': {
'last_author' => array('linked_type', 'type', 'href', 'title', 'tns3'),
'author' => array('linked_type', 'type', 'href', 'title', 'tns3'),
'interlocutor' => array('linked_type', 'type', 'href', 'title', 'tns3'),
'messages' => array('linked_type', 'type', 'href', 'count')
}

'links' est en fait un groupe de liens pertinents concernant l'objet en cours vers d'autres pages de l'API. Dans notre cas, va nous permettre de retrouver les messages de notre sujet de MP, ou encore son auteur...

  • _POST: http://<url_club>/api/users/<pseudo_rewritten>/threads/

    Est attendu dans php://input/ un json_encode() d'un tableau contenant les informations/clés suivantes: 
    title, content, recipient ou recipients

    Toute autre information/clé sera ignorée.

     
  • _PUT/_PATCH: http://<url_club>/api/users/<pseudo_rewritten>/threads/<id_thread>/

    Est attendu dans php://input/ un json_encode() d'un tableau contenant l'information/clé suivante: 
    last_message_read_id.

    Toute autre information/clé sera ignorée.

     
  • _DELETE: http://<url_club>/api/users/<pseudo_rewritten>/threads/<id_thread>/
  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/threads/<id_thread>/messages/
    • Seule la fonction list() est supportée et renverra donc une liste paginée des messages pour un sujet de MP particulier du user en question (seront donc acceptés aussi ?page=<int>&results_per_page=<int>).
    • Lors de la récupéation de la dernière page, le thread est marqué en "lu"
  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/threads/<id_thread>/messages/<id_message>/. (<id_message> sera alors considéré comme le resource_identifier)
    • Si le resource_identifier ne correspond pas à un objet, une erreur NOT_FOUND se retournée, sinon get() sera appelée et renverra: 

{'id', 'parsed_content', 'attachments', 'creation_date', 'type', 'href', 'html_content', 'links'}

avec 'links': {
'author' => array('linked_type', 'type', 'href', 'title', 'tns3'),
'thread' => array('linked_type', 'type', 'href')
}

'links' est en fait un groupe de liens pertinents concernant l'objet en cours vers d'autres pages de l'API. Dans notre cas, va nous permettre de retrouver le sujet de MP correspondant à notre message privé ou encore son auteur.

  • _POST: http://<url_club>/api/users/<pseudo_rewritten>/threads/<id_thread>/messages/.

    Est attendu dans php://input/ un json_encode() d'un tableau contenant l'information/clé suivante: 
    content

    Toute autre information/clé sera ignorée.

 

1-9 - Dossiers / Catégories
Ce type de service est accessible via les URLs suivantes:

  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/categories/
    • Seule la fonction list() est supportée et renverra donc une liste paginée des dossiers/catégories du user en question (seront donc acceptés aussi ?page=<int>&results_per_page=<int>).
  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/categories/<id_category>/. (<id_category> sera alors considéré comme le resource_identifier)
    • Si le resource_identifier ne correspond pas à un objet, une erreur NOT_FOUND se retournée, sinon get() sera appelée et renverra: 

 

{'id', 'title', 'type', 'href', 'links'}

avec 'links': {
'owner' => array('linked_type', 'type', 'href', 'title', 'tns3'),
'photos' => array('linked_type', 'type', 'href', 'count'),
'articles' => array('linked_type', 'type', 'href', 'count'),
'videos' => array('linked_type', 'type', 'href', 'count')
}

'links' est en fait un groupe de liens pertinents concernant l'objet en cours vers d'autres pages de l'API. Dans notre cas, va nous permettre de retrouver les medias de notre dossier, ou encore son propriétaire...

  • _POST: http://<url_club>/api/users/<pseudo_rewritten>/categories/

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

    Toute autre information/clé sera ignorée.

     

 

1-10 - Médias

Ce type de service est accessible via les URLs suivantes: 

  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/medias/photos/
  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/medias/videos/.
  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/medias/articles/.
    • Seule la fonction list() est supportée et renverra donc une liste paginée des médias d'un type donné du user en question (seront donc acceptés aussi ?page=<int>&results_per_page=<int>).
  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/categories/<id_category>/medias/photos/
  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/categories/<id_category>/medias/videos/.
  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/categories/<id_category>/medias/articles/.
      • Seule la fonction list() est supportée et renverra donc une liste paginée des médias d'un type donné et contenu dans le dossier fourni du user en question (seront donc acceptés aussi ?page=<int>&results_per_page=<int>).
  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/medias/photos/<id_media>-<media_salt>/. (<id_media>-<media_salt> sera alors considéré comme le resource_identifier)
  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/medias/videos/<id_media>-<media_salt>/. (<id_media>-<media_salt> sera alors considéré comme le resource_identifier)
  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/medias/articles/<id_media>-<media_salt>/. (<id_media>-<media_salt> sera alors considéré comme le resource_identifier)
  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/categories/<id_category>/medias/photos/<id_media>-<media_salt>/. (<id_media>-<media_salt> sera alors considéré comme le resource_identifier)
  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/categories/<id_category>/medias/photos/<id_media>-<media_salt>/. (<id_media>-<media_salt> sera alors considéré comme le resource_identifier)
  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/categories/<id_category>/medias/photos/<id_media>-<media_salt>/. (<id_media>-<media_salt> sera alors considéré comme le resource_identifier)
    • Si le resource_identifier ne correspond pas à un objet, une erreur NOT_FOUND se retournée, sinon get() sera appelée et renverra: 

Pour une photo:
{'id', 'media_type', 'title', 'description', 'disclaimer', 'creation_date', 'tns1', 'tns2', 'tns3', 'web_url', 'is_closed', 'links', 'number_of_views', 'number_of_votes', 'has_voted', 'type', 'href', 'url', 'width', 'height', 'embed_bbcode'}

Pour une vidéo:
{'id', 'media_type', 'title', 'description', 'disclaimer', 'creation_date', 'tns1', 'tns2', 'tns3', 'web_url', 'is_closed', 'links', 'number_of_views', 'number_of_votes', 'has_voted', 'type', 'href', 'url', 'duration', 'embed_bbcode'}

Pour un article:
{'id', 'media_type', 'title', 'description', 'disclaimer', 'creation_date', 'tns1', 'tns2', 'tns3', 'web_url', 'is_closed', 'links', 'number_of_views', 'number_of_votes', 'has_voted', 'type', 'href', 'parsed_content', 'html_content', 'attachments', 'has_thumbnail'}

avec 'links': {
'owner' => array('linked_type', 'type', 'href', 'title', 'tns3'),
'category' => array('linked_type', 'type', 'href', 'title'),
'comments' => array('linked_type', 'type', 'href', 'count')
}

'links' est en fait un groupe de liens pertinents concernant l'objet en cours vers d'autres pages de l'API. Dans notre cas, va nous permettre de retrouver le dossier de notre média, ou encore son propriétaire...

  • _POST: http://<url_club>/api/users/<pseudo_rewritten>/medias/photos/
  • _POST: http://<url_club>/api/users/<pseudo_rewritten>/medias/videos/.
  • _POST: http://<url_club>/api/users/<pseudo_rewritten>/medias/articles/.
  • _POST: http://<url_club>/api/users/<pseudo_rewritten>/categories/<id_category>/medias/photos/
  • _POST: http://<url_club>/api/users/<pseudo_rewritten>/categories/<id_category>/medias/videos/.
  • _POST: http://<url_club>/api/users/<pseudo_rewritten>/categories/<id_category>/medias/articles/.
    Pour une photo ou une vidéo: Attend le résultat d'un upload de fichier ($_FILES) ; et de manière facultative dans php://input/ un json_encode() d'un tableau contenant les informations/clés suivantes: title, description
    Pour un article: Est attendu dans php://input/ un json_encode() d'un tableau contenant les informations/clés suivantes: title, content

    Toute autre information/clé sera ignorée.

  • _PUT/_PATCH: http://<url_club>/api/users/<pseudo_rewritten>/medias/photos/<id_media>-<media_salt>/
  • _PUT/_PATCH: http://<url_club>/api/users/<pseudo_rewritten>/medias/videos/<id_media>-<media_salt>/
  • _PUT/_PATCH: http://<url_club>/api/users/<pseudo_rewritten>/medias/articles/<id_media>-<media_salt>/
  • _PUT/_PATCH: http://<url_club>/api/users/<pseudo_rewritten>/categories/<id_category>/medias/photos/<id_media>-<media_salt>/
  • _PUT/_PATCH: http://<url_club>/api/users/<pseudo_rewritten>/categories/<id_category>/medias/videos/<id_media>-<media_salt>/
  • _PUT/_PATCH: http://<url_club>/api/users/<pseudo_rewritten>/categories/<id_category>/medias/articles/<id_media>-<media_salt>/

    Est attendu dans php://input/ un json_encode() d'un tableau contenant les informations/clés suivantes: 
    number_of_votes, number_of_views (si le nombre fourni est supérieur à celui que nous avons en DB, alors une incrémentation (+1) sera faite). 

    Toute autre information/clé sera ignorée.

  • _DELETE: http://<url_club>/api/users/<pseudo_rewritten>/medias/photos/<id_media>-<media_salt>/.
  • _DELETE: http://<url_club>/api/users/<pseudo_rewritten>/medias/videos/<id_media>-<media_salt>/.
  • _DELETE: http://<url_club>/api/users/<pseudo_rewritten>/medias/articles/<id_media>-<media_salt>/.
  • _DELETE: http://<url_club>/api/users/<pseudo_rewritten>/categories/<id_category>/medias/photos/<id_media>-<media_salt>/.
  • _DELETE: http://<url_club>/api/users/<pseudo_rewritten>/categories/<id_category>/medias/videos/<id_media>-<media_salt>/.
  • _DELETE: http://<url_club>/api/users/<pseudo_rewritten>/categories/<id_category>/medias/articles/<id_media>-<media_salt>/.

1-11 - Messages d'un utilisateur sur le forum

Ce type de service est accessible via les URLs suivantes:

  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/forum_posts/
    • Retourne la liste des messages de l'utilisateur(sont acceptés les arguments ?page=<int>&results_per_page=<int>).

Le retour est composé de resources post (voir 2-5 pour le squelette)

1-12 - Notifications utilisateur

Ce type de service est accessible via les URLs suivantes:

  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/notifications/
      • Si le pseudo_rewritten ne correspond pas à un utilisateur, une erreur NOT_FOUND se retournée.
      • Si le viewer n'a pas les droits, une erreur FORBIDDEN sera retournée.
      • Sinon get() sera appelée et renverra: 

{'nb_friends_asks', 'nb_friends_online', 'nb_invite', 'nb_notifications', 'nb_mentions', 'nb_alerts'*, 'nb_forum_flags'*, 'nb_online_chat'*, 'nb_new_private_msg'*, 'type', 'href'}

(*) Les champs ne seront renvoyés QUE si le viewer à les droits requis et si la fonctionnalité/le module est activé.

1-13 - Smileys

Ce type de service est accessible via les URLs suivantes:

  • _GET: http://<url_club>/api/smileys/
    • Retourne la liste des smileys du site avec leur code (pour le bbcode) et l'url de l'image correspondante

Le retour est composé de resources smileys : 

{codeurltypehref}
href vaut toujours null.

1-14 - Notifications

Ce type de service est accessible via les URLs suivantes:

  • _GET: http://<url_club>/api/notifications/
  • _GET: http://<url_club>/api/notifications/pushable/
    • Retourne la liste des notifications (pushable uniquement ou non) du site.
  • _GET: http://<url_club>/api/notifications/<name>/
  • _GET: http://<url_club>/api/notifications/pushable/<name>/
      • Si le resource_identifier ne correspond pas à un objet, une erreur NOT_FOUND se retournée, sinon get() sera appelée et renverra: 

{'id', 'name', 'type', 'id_module', 'email_activated', 'mp_activated', 'pushable', 'push_activated', 'href'}

1-15 - Notifeed utilisateur

Ce type de service est accessible via les URLs suivantes:

  • _GET: http://<url_club>/api/users/<pseudo_rewritten>/notifeed/
      • Si le pseudo_rewritten ne correspond pas à un utilisateur, une erreur NOT_FOUND se retournée.
      • Si le viewer n'a pas les droits, une erreur FORBIDDEN sera retournée.
      • Sinon get() sera appelée et renverra:

Le retour est composé de ressource NotiFeed :

{id_notifeed, typedatelinks href}

 

2 - API (forum)


2-0a - Forums (obsolète)

Ce type de service est accessible via les URLs suivantes:

  • _GET: http://<url_club>/api/forum_forums/
    • Seule la fonction list() est supportée et renverra donc une liste paginée des forums (seront donc acceptés aussi ?page=<int>&results_per_page=<int>).
  • _GET: http://<url_club>/api/forum_forums/<id_forum>/. (<id_forum> sera alors considéré comme le resource_identifier)
    • Si le resource_identifier ne correspond pas à un objet, une erreur NOT_FOUND se retournée, sinon get() sera appelée et renverra: 

{'id_forum', 'name', 'name_rewritten', 'display_name', 'url_name', 'categories', 'web_url', 'type', 'href', 'links'}

 

2-0b - Catégories de forum (obsolète)

Ce type de service est accessible via les URLs suivantes:

  • _GET: http://<url_club>/api/forum_categories/<id_forum>/
    • Seule la fonction list() est supportée et renverra donc une liste paginée des forums (seront donc acceptés aussi ?page=<int>&results_per_page=<int>).
  • _GET: http://<url_club>/api/forum_categories/<id_forum>/<id_cat>. (<id_cat> sera alors considéré comme le resource_identifier)
    • Si le resource_identifier ne correspond pas à un objet, une erreur NOT_FOUND se retournée, sinon get() sera appelée et renverra: 

 {'id_category', 'id_computed', 'name', 'url_name', 'description', 'web_url', 'type', 'href', 'links'}

avec 'links': {
'forum' => array('linked_type', 'type', 'href')

'links' est en fait un groupe de liens pertinents concernant l'objet en cours vers d'autres pages de l'API. Dans notre cas, va nous permettre de retrouver le forum auquel appartient la catégorie en question.

2-1 - Forums

Ce type de service est accessible via les URLs suivantes:

  • _GET: http://<url_forum>/api/forums/
    • Seule la fonction list() est supportée et renverra donc une liste paginée des forums (seront donc acceptés aussi ?page=<int>&results_per_page=<int>).
  • _GET: http://<url_forum>/api/forums/<forum_name>/. (<forum_name> sera alors considéré comme le resource_identifier)
    • Si le resource_identifier ne correspond pas à un objet, une erreur NOT_FOUND se retournée, sinon get() sera appelée et renverra: 

 {'id', 'name', 'color', 'title', 'web_url', 'type', 'href', 'links'}

avec 'links': {
'categories' => array('linked_type', 'type', 'href'),
'last_topics' => array('linked_type', 'type', 'href'),
'read_topics' => array('linked_type', 'type', 'href'), (si utilisateur connecté)
'participated_topics' => array('linked_type', 'type', 'href'), (si utilisateur connecté)
'favorite_topics' => array('linked_type', 'type', 'href') (si utilisateur connecté)
}

'links' est en fait un groupe de liens pertinents concernant l'objet en cours vers d'autres pages de l'API. Dans notre cas, va nous permettre de retrouver les catégories du forum en question, ou encore les derniers sujets...

 

2-2 - Catégories de forum

Ce type de service est accessible via les URLs suivantes:

  • _GET: http://<url_forum>/api/forums/<forum_name>/categories/
    • Seule la fonction list() est supportée et renverra donc une liste paginée des forums (seront donc acceptés aussi ?page=<int>&results_per_page=<int>).
  • _GET: http://<url_forum>/api/forums/<forum_name>/categories/<id_cat>/. (<id_cat> sera alors considéré comme le resource_identifier)
    • Si le resource_identifier ne correspond pas à un objet, une erreur NOT_FOUND se retournée, sinon get() sera appelée et renverra: 

{'id', 'name', 'url_name', 'number_of_subcategories', 'force_subcat', 'web_url', 'type', 'href', 'links'}

avec 'links': {
'forum' => array('linked_type', 'type', 'href', 'color', 'title'),
'subcategories' => array('linked_type', 'type', 'href', 'count'),
'last_topics' => array('linked_type', 'type', 'href'),
'read_topics' => array('linked_type', 'type', 'href'), (si utilisateur connecté)
'participated_topics' => array('linked_type', 'type', 'href'), (si utilisateur connecté)
'favorite_topics' => array('linked_type', 'type', 'href') (si utilisateur connecté)

'links' est en fait un groupe de liens pertinents concernant l'objet en cours vers d'autres pages de l'API. Dans notre cas, va nous permettre de retrouver le forum auquel appartient la catégorie en question, ou encore les derniers sujets...

 

2-3 - Sous-catégories de forum

Ce type de service est accessible via les URLs suivantes:

  • _GET: http://<url_forum>/api/forums/<forum_name>/categories/<id_cat>/subcategories/
    • Seule la fonction list() est supportée et renverra donc une liste paginée des forums (seront donc acceptés aussi ?page=<int>&results_per_page=<int>).
  • _GET: http://<url_forum>/api/forums/<forum_name>/categories/<id_cat>/subcategories/<id_subcat>/. (<id_subcat> sera alors considéré comme le resource_identifier)
    • Si le resource_identifier ne correspond pas à un objet, une erreur NOT_FOUND se retournée, sinon get() sera appelée et renverra: 

{'id', 'name', 'url', 'web_url', 'type', 'href', 'links'}

avec 'links': {
'forum' => array('linked_type', 'type', 'href',  'color', 'title'),
'category' => array('linked_type', 'type', 'href'),
'last_topics' => array('linked_type', 'type', 'href'),
'read_topics' => array('linked_type', 'type', 'href'), (si utilisateur connecté)
'participated_topics' => array('linked_type', 'type', 'href'), (si utilisateur connecté)
'favorite_topics' => array('linked_type', 'type', 'href') (si utilisateur connecté)

'links' est en fait un groupe de liens pertinents concernant l'objet en cours vers d'autres pages de l'API. Dans notre cas, va nous permettre de retrouver le forum auquel appartient la sous-catégorie en question, ou encore les derniers sujets...

 

2-4 - Sujets de forum

Ce type de service est accessible via les URLs suivantes:

  • _GET: http://<url_forum>/api/forums/<forum_name>/categories/<id_cat>/[subcategories/<id_subcat>/]topics/
    • Seule la fonction list() est supportée et renverra donc une liste paginée des forums (seront donc acceptés aussi ?page=<int>&results_per_page=<int>).
  • _GET: http://<url_forum>/api/forums/<forum_name>/categories/<id_cat>/[subcategories/<id_subcat>/]topics/<id_topic>/. (<id_topic> sera alors considéré comme le resource_identifier)
    • Si le resource_identifier ne correspond pas à un objet, une erreur NOT_FOUND se retournée, sinon get() sera appelée et renverra: 

{'id', 'title', 'last_post_date', 'is_closed', 'is_sticky', 'is_read', 'last_position', 'last_post_read_id', 'web_url', 'type', 'href', 'links', 'href_alert'}

avec 'links': {
'forum' => array('linked_type', 'type', 'href', 'color', 'title'),
'category' => array('linked_type', 'type', 'href'),
'subcategory' => array('linked_type', 'type', 'href'),
'posts' => array('linked_type', 'type', 'href', 'count'),
'last_author' => array('linked_type', 'type', 'href', 'title', 'tns3'),
'author' => array('linked_type', 'type', 'href', 'title', 'tns3')

'links' est en fait un groupe de liens pertinents concernant l'objet en cours vers d'autres pages de l'API. Dans notre cas, va nous permettre de retrouver le forum auquel appartient le sujet en question, ou encore les derniers messages...

  • _POST: http://<url_forum>/api/forums/<forum_name>/categories/<id_cat>/[subcategories/<id_subcat>/]topics/last/

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

    Toute autre information/clé sera ignorée.

     
  • _PUT/_PATCHhttp://<url_forum>/api/forums/<forum_name>/categories/<id_cat>/[subcategories/<id_subcat>/]topics/<id_topic>/

    Est attendu dans php://input/ un json_encode() d'un tableau contenant les informations/clés suivantes: 
    flag_owntopic, last_post_read_id et last_position.

    Toute autre information/clé sera ignorée.

    flag_owntopic pourra accepter les valeurs suivantes: 0 (marqué comme lu, 1 (marqué comme participé), 3 (marqué comme favori) ou -1 (Supprimer les drapeaux). 

 

2-5 - Messages de forum

Ce type de service est accessible via les URLs suivantes:

  • _GET: http://<url_forum>/api/forums/<forum_name>/categories/<id_cat>/[subcategories/<id_subcat>/]topics/<id_topic>/posts/
    • Seule la fonction list() est supportée et renverra donc une liste paginée des forums (seront donc acceptés aussi ?page=<int>&results_per_page=<int>).
  • _GET: http://<url_forum>/api/forums/<forum_name>/categories/<id_cat>/[subcategories/<id_subcat>/]topics/<id_topic>/posts/<id_post>/. (<id_post> sera alors considéré comme le resource_identifier)
    • Si le resource_identifier ne correspond pas à un objet, une erreur NOT_FOUND se retournée, sinon get() sera appelée et renverra: 

{'id', 'pos', 'content', 'creation_date', 'parsed_content', 'html_content', 'attachments', 'user_id', 'topic_title', 'topic_link', 'web_url', 'type', 'href', 'links', 'href_alert'}

avec 'links': {
'forum' => array('linked_type', 'type', 'href', 'color', 'title'),
'category' => array('linked_type', 'type', 'href'),
'subcategory' => array('linked_type', 'type', 'href'),
'topic' => array('linked_type', 'type', 'href'),
'author' => array('linked_type', 'type', 'href', 'title', 'tns3')

'links' est en fait un groupe de liens pertinents concernant l'objet en cours vers d'autres pages de l'API. Dans notre cas, va nous permettre de retrouver le forum auquel appartient le message en question, ou encore son auteur...

  • _POST: http://<url_forum>/api/forums/<forum_name>/categories/<id_cat>/[subcategories/<id_subcat>/]topics/<id_topic>/posts/

Est attendu dans php://input/ un json_encode() d'un tableau contenant l'information/clé suivante: 
content

Toute autre information/clé sera ignorée.

  • _PUT/_PATCH: http://<url_forum>/api/forums/<forum_name>/categories/<id_cat>/[subcategories/<id_subcat>/]topics/<id_topic>/posts/<id_post>/. (<id_post> sera alors considéré comme le resource_identifier)

Est attendu dans php://input/ un json_encode() d'un tableau contenant l'information/clé suivante: 
content

Toute autre information/clé sera ignorée.

 

2-6 - Recherche forum

Ce type de service est accessible via les URLs suivantes:

  • _GET: http://<url_forum>/api/forums/search/<terme à rechercher>/
    • Seule la fonction list() est supportée et renverra donc une liste paginée des résultats (seront donc acceptés aussi ?page=<int>&results_per_page=<int>).

Exemple : http://forum.doctissimo.fr/api/forums/search/cancer/?page=2

Pour spécifier plusieurs mots, on peut les séparer par un espace (%20) : http://forum.doctissimo.fr/api/forums/search/cancer%20poumons/?page=2

9 paramètres, à passer dans la query_string, permettent de changer les options de recherche: 
Les deux derniers permettent de spécifier la zone de recherche, soit une liste de forum, soit une liste de catégorie d'un forum donné. 

  • search_type=[1 à 6]
    • 1 : rechercher tous les mots
    • 2:  rechercher un des mots
    • 3 : recherche avancée via l'utilisation de () ou |
    • 4 : recherche de type "commeçant par"
    • 5 : recherche de type "finissant par"
    • 6 : recherche de type "contient"
  • search_location=[1 ou 2 ou 4]
    • 1 : rechercher dans le tittre
    • 2 : rechercher dans le contenu
    • 4 : rechercher dans le titre et le contenu
  • search_group_by=[1 ou 2]
    • 1 : groupement par topic : seul le dernier message du topic sera affiché
    • 2 : groupement par message : tous les messages seront affichés
    • Attention : Lorsqu'on effectue une recherche dans le titre, le search_group_by ne peut être changé et est défini par topic
  • search_order=[id_max_post|date|relevance]
  • nb_view : nombre de vue minimum du topic
  • nb_post : nombre de réponse minimum du topic
  • since_nb_days : permet de définir l'ancienneté du post en nombre de jour
  • daterange=[2-5] : Recherche en fonction d'une ou plusieurs date
    • 1 => depuis le début jusqu'à aujourd'hui, valeur par défaut
    • 2 => depuis une date jusqu'à aujourd'hui
      • date_start=YYYY-MM-DD => Correspond à la date de départ
    • 3 => correspond à un jour précis
      • date_start=YYYY-MM-DD => Le jour en question
    • 4 => Recherche entre 2 dates
      • date_start=YYYY-MM-DD => Le jour de départ
      • date_end=YYYY-MM-DD => Le jour de fin
    • 5 => Recherche avant une date
      • date_start=YYYY-MM-DD => La date limite
  • search_forums : liste des id de forum séparé par une virgule
  • search_categories : liste des id de catégorie séparé par une virgule

Attention :

  • Le nombre de vues et le nombre de réponses ne sont mis à jour que toutes nuits pour les topics créés après 06/2010. Pour les topics plus anciens la mise à jour n'est effectuée que si le topic en lui-même est édité.
  • En cas de recherche distribué, une subtilité s'applique quant aux nombres de résultats retournés :
    Dans le cas où aucun forum n'est spécifié ou si plusieurs forums sont indiqués, alors le results_per_page est interprété de la façon suivante :
    • il y aura results_per_page x resources par forum
     

 

 

{
  "page": 1,
  "results_count": 5,
  "results_per_page": 10,
  "word": "Obviously",
  "resources": [
    {
      "id": 212,
      "pos": 68,
      "creation_date": "2016-03-29 14:24",
      "content": "[#333333]Obviously ForumTRunk[/#333333]",
      "parsed_content": "Obviously ForumTRunk",
      "html_content": "<span style=\"color:#333333;\">Obviously ForumTRunk</span>",
      "attachments": [],
      "links": {
        "forum": {
          "linked_type": "forum",
          "type": "link",
          "href": "http://forum.docti.local.fr/api/forums/trunk/",
          "id_forum": 1,
          "color": "#D5E6E1",
          "title": "trunk"
        },
        "category": {
          "linked_type": "forum_category",
          "type": "link",
          "href": "http://forum.docti.local.fr/api/forums/trunk/categories/2/",
          "title": "Catégorie 2"
        },
        "topic": {
          "linked_type": "topic",
          "type": "link",
          "href": "http://forum.docti.local.fr/api/forums/trunk/categories/2/topics/9/",
          "title": "Les forums, c'est bien pour créer des topics intéressants."
        },
        "author": {
          "type": "link",
          "linked_type": "user",
          "href": "http://club.docti.local.fr/api/users/supadmin/",
          "title": "supadmin",
          "pseudo": "supadmin",
          "pseudo_rewritten": "supadmin",
          "tns1": "http://static.docti.local.fr/design/user/avatar/default_tns1_avatar.png",
          "tns3": "http://static.docti.local.fr/design/user/avatar/default_tns3_avatar.png"
        }
      },
      "href_alert": "http://forum.docti.local.fr/api/forums/trunk/categories/2/topics/9/posts/212/alert/",
      "web_url": "http://forum.docti.local.fr/trunk/Categorie-2/forums-topics-interessants-sujet_9_2.htm#t212",
      "type": "post",
      "href": "http://forum.docti.local.fr/api/forums/trunk/categories/2/topics/9/posts/212/",
      "post_url": "http://forum.docti.local.fr/trunk/Categorie-2/forums-topics-interessants-sujet_9_2.htm#t212",
      "topic_title": "Les forums, c'est bien pour créer des topics intéressants.",
      "topic_link": "http://forum.docti.local.fr/api/forums/trunk/categories/2/topics/9/",
      "topic_url": "http://forum.docti.local.fr/trunk/Categorie-2/forums-topics-interessants-sujet_9_1.htm",
    }
  ],
  "list_type": "forum_search",
  "type": "list",
  "href": "http://forum.docti.local.fr/api/forums/search/Obviously/"
}


 

2-7 - Alertes sur forum

Ce type de service est accessible via les URLs suivantes:

  • _POST:  http://<url_forum>/api/forums/<forum_name>/categories/<id_cat>/[subcategories/<id_subcat>/]topics/<id_topic>/alert/
  • _POST:  http://<url_forum>/api/forums/<forum_name>/categories/<id_cat>/[subcategories/<id_subcat>/]topics/<id_topic>/posts/<id_post>/alert/

Ces URLs permettent respectivement de lever une alerte sur un topic et un post.
Les alertes ne seront créées que si un utilisateur est logué sinon  le message d'erreur "Forbiden" est envoyé.

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

Toute autre information/clé sera ignorée.

 

{'id', 'id_group_alert', 'id_forum', 'id_category', 'id_topic', 'id_post', 'id_author', 'id_reporter', 'reason', 'status', 'id_resolver', 'action', 'date',  'date_processing_start', ',date_processing_end', 'links'}

avec 'links': {
'author' => array('linked_type', 'type', 'href', 'title', 'tns3'),
'reporter' => array('linked_type', 'type', 'href', 'title', 'tns3'),
'resolver' => array('linked_type', 'type', 'href', 'title', 'tns3')

3 - Sélections Editoriales

Ce type de service est accessible via les URLs suivantes:

  • _GET: http://<url_club>/api/selections/<name_rewritten>/
  • _GET: http://<url_club>/api/selections/<name_rewritten>/<YYYY-MM-DD HH:ii>. (pour les SE jusqu'à la date fournie)
    • Seule la fonction list() est supportée et renverra donc une liste paginée des objets contenus dans la SE en question (seront donc acceptés aussi ?page=<int>&results_per_page=<int>).
  • _GET: http://<url_club>/api/selections/<name_rewritten>/date/<YYYY-MM-DD HH:ii>. (<YYYY-MM-DD HH:ii> sera alors considéré comme le resource_identifier)
    • Si le resource_identifier ne correspond pas à un objet, une erreur NOT_FOUND se retournée, sinon get() sera appelée et renverra: 

{'list'}

avec 'list' étant un tableau de stdClass: {'id', 'id_data', 'date', 'custom_fields', 'related_object'}

où related_object sera un lien vers une page de l'API qui fournira les infos sur l'objet en question.

nb_view
  • Aucune étiquette