Utilisation
Le plugin récupère un certain nombre de paramètres dans l'URL passée (en GET et/ou en POST), les transmet au service adéquat, puis retourne un résultat au format JSON, donc directement exploitable en Javascript.
Requêtes
L'url de requêtage est de la forme suivante :
- En path_info : http://urldublog/rest/<service>?f=<fonction>¶m1=valeur1¶m2=valeur2&...
- En query_string : http://urldublog/?rest/<service>&f=<fonction>¶m1=valeur1¶m2=valeur2&...
où :
- <service> est le service à appeler (seul le service "blog" est proposé par défaut, mais des plugins peuvent enregistrer leur propre service)
- <fonction> est la fonction du service à appeler
- param1 est le premier paramètre, param2 le second, ...
Petit exemple pour situer le contexte : pour récupérer tous les billets publiés en 2008 par toto, il suffit d'aller sur : http://urldublog/rest/blog?f=getPosts&post_year=2008&user_id=toto
Réponse
Le service renverra systématiquement un objet JSON de la forme :
{
"status": "ok",
"data": [...]
}
où status indique l'état du traitement, et data contient les informations demandées par la requête (un tableau s'il plusieurs entrées peuvent être retournées, une valeur sinon).
En cas d'erreur, l'objet retourné sera de la forme :
{
"status": "failed",
"message": "error message"
}
Extension
Le plugin a été prévu pour être étendu par d'autres plugins. Il fournit par défaut uniquement des méthodes sur le blog, mais peut être étendu assez simplement. Une page dédiée décrira bientôt comment enregistrer ses propres services au plugin. Pour les impatients, il suffit de regarder la tête du fichier class.blogrest.php du plugin, qui définit le service blog.
Services
TODO
- Ajout du support des métadonnées
- Ajout du support des galeries
- Ajout du support des sous-catégories (actif partiellement aujourd'hui et bridé pour rester compatible avec la version actuelle de dotclear2, sera rendu pleinement fonctionnel après la sortie de la 2.1)
- Envoi de commentaires

9 réactions
1 De Osku - 21/10/2008, 10:45
Tiens, tu t'héberges plus chez dcplugins :p ?
Sinon est-ce qu'on pourrait imaginer l'utiliser pour proposer les fonctionnalités suivantes :
ou faut-il plutôt voir cet outil pour étendre dotclear avec d'autres applications externes ?
2 De Dsls - 21/10/2008, 10:57
Je ne suis pas *encore* chez dcplugins pour dotAjax car la peinture est encore trop fraîche.
En fait, pour le moment, les requêtes Ajax sont juste du read-only, mais rien n'empêche d'ajouter les fonctions qui feraient ce que tu veux :)
L'idée est justement de recueillir les besoins et de voir s'ils sont implémentables :)
3 De Dsls - 21/10/2008, 16:39
Bon, je viens de commiter le plugin sous dcplugins.
Concernant l'édition publique des billets et la modification des commentaires, j'avoue avoir quelques inquiétudes quant à la sécurité du biniou... il faudrait voir comment blinder la chose.
4 De Gauthier - 13/05/2009, 19:13
Bonjour, je viens de découvrir un peu tardivement ce plugin.... et bien sur, je n'arrive pas à m'en servir. J'ai récupéré la dernière version sur le lab. Mon blog me dit qu'elle est correctement installée.... Je suppose que jusque là, je n'ai pas fait trop d'erreurs.
En fait, je voudrais récupérer au format Json les billets d'une catégorie de mon blog. Mais j'ai beau rentrer l'adresse suivante dans mon navigateur : http://test.bergerac95.fr/accueil/i...
Rien ne s'affiche... Je suppose que j'ai loupé une étape quelque part, mais où ?
5 De Dsls - 13/05/2009, 19:25
Gauthier : tu es en query_string, l'url est donc :
http://test.bergerac95.fr/accueil/i...
6 De Gauthier - 13/05/2009, 19:27
Rhâââââ.......... Merci ! Deux heures à ramer à cause d'un point d'interrogation..... Merci beaucoup !!!!
7 De Gauthier - 20/05/2009, 19:21
Bonjour, je reviens à la charge, désolé.... je cherche vainement à convertir une série de billets en un fichier Json de ce type : http://simile.mit.edu/timeline/exam...
Je me dis qu'avec ton plugin, je suis sur la bonne voie, mais mes connaissances en PHP sont nulles, tout comme celles en Javascript ou json.... du coup, je suis un peu perdu. La seule chose que j'ai réussi à faire, c'est créer une nouvelle class "time", en faisant un copier coler de blogrest.php, et en rajoutant une ligne dans le fichier _public..... Par contre, je suis toujours incapable de modifier la récupération des données et leur agencement.... Si tu avais un peu de temps à consacrer à mon problème, je t'en serais très reconnaissant. Merci
Gauthier
8 De colir - 10/03/2010, 13:33
Salut,
merci pour ce plugin, il est juste enorme et INDISPENSABLE pour moi (je greffe du flash sur un DC)
Petite question, comment faire pour que ce plug support l'encodage de caractères ?
j'ai une catégorie qui a pour url Showroom/Actualitées
si je demande cela au plug:
http://localhost/eclectik/www/index...
il me sert:
http://localhost/eclectik/www/index...
et donc ne me retourne rien...
merci pour ton aide
9 De Madef - 10/12/2012, 14:44
Bonjour,
Je ne sais pas si vous maintenez encore votre plugin.
Je pense qu'il serait bien d'apporter deux améliorations :
- La première, ajouter un argument "callback". Je l'ai codé pour mes propres besoins (pour cela j'ai modifié myjson_encode et remplacer les deux "return" par "$return =" et ajouter les lignes suivantes :
if (!empty($_GET['callback'])) {
return $_GET['callback'] . '(' . json_encode($a) . ');';
} else {
return $return;
} (j'utilise json encode car avec myjson_encode j'ai des ";").
- La seconde amélioration, plus "compliquée", serait de permettre de sélectionner les champs à afficher. Par exemple dans mon cas je n'ai pas besoin du contenu des posts. Ça permet de réduire la taille du retour et aussi certainement la durée du traitement.