Collection+JSON API [plugin]

Bonjour,

Je suis débutant avec SPIP et j’essaie de comprendre comment utiliser le plugin Collection+JSON pour créer une API REST.

Pourriez-vous m’expliquer, ou me donner des ressources/tutoriels, sur :

  • Comment créer et exposer une collection (articles, rubriques, etc.)
  • Comment récupérer les données depuis SPIP via cette API
  • Les bonnes pratiques pour débutants

Merci beaucoup pour votre aide !

Cordialement,

Nicolas Danquigny

Salut,

Alors, pour ton besoin de faire de ton site un serveur / point d’entrée d’API pour le contenu, je pense à 3 plugins distincts :

Les 2 premiers reposent sur l’utilisation du plugin http ; dont tu peux voir la doc ici

Si tes besoins de diffusion de données en JSON sont plus ponctuels, il existe nativement dans SPIP l’API transmettre, pour partager des données avec une personne disposant d’un compte :

Générer le lien :

[(#VAL{transmettre}|generer_url_api_low_sec{json,media,'',[(#ARRAY{id_#ENV{objet,article},#ENV{id_objet}}|http_build_query)],'',1})]

Puis un fichier :

└── prive
    └── transmettre
        └── json
            └── media.html

dont le contenu peut-être :

#HTTP_HEADER{Content-Type: application/json; charset=#CHARSET}#CACHE{900}<BOUCLE0(AUTEURS){tout}{id_auteur=#ENV{id_auteur}}{lang_select}><BOUCLE_json(ARTICLES documents){id_article?}{fusion id_article}{0,1}>
[(#ARRAY{
  title,#TITRE,
  artist,[(#LESAUTEURS|supprimer_tags|texte_backend)],
  logo,#LOGO_ARTICLE,
  src,#URL_DOCUMENT{#ID_DOCUMENT},
}|json_encode{2})]
</BOUCLE_json></BOUCLE0>

Bonne lecture.

2 « J'aime »

Je déplace le sujet dans la catégorie « Général » plus adaptée aux questions d’entre-aide :slightly_smiling_face:

Salut Nicolas,

dans mes tests, Collection+Json n’a pas besoin de configuration, et rend beaucoup de choses publiques par défaut après activation :

  • L’index de l’API : http:/example.com/http.api/collectionjson/ qui liste les collections disponibles
  • Les index de collections : http:/example.com/http.api/collectionjson/articles/ qui fournissent une liste paginée de ressources
  • Les pages de ressources : http:/example.com/http.api/collectionjson/articles/1234 retournant les données de la ressource ayant cet identifiant

L’intérêt de Collections+Json est qu’il permet de modifier et crée de nouveaux objets éditoriaux, là où les autres solutions ne permettent par défaut que la lecture.

Si tu n’as besoin que de lecture, les solutions proposées par @placido peuvent être plus simples.