Pas avec le plugin que j’utilise. Il expose une API REST limitée à la méthode GET. Mais y’aurait-il un intérêt à proposer une entrée par l’API ? Infojune dispose déjà de son propre formulaire de suggestion.
Je suis passé rapidement à une v2 qui rajoute pas mal de choses comme les logos, la liste complète des liens, les champs parents et enfants, etc. : https://infojune.fr/api/
J’en avais entendu parler quand je développais sous Symfony.
Il ont bien évolués et on peut générer aussi du GraphQL et des client Nuxt.js en scaffolding !
Je crois qu’il respecte la spec OpenAPI comme Swagger pour le REST.
En effet j’ai découvert le standard Open API seulement hier C’est la première fois que code une API depuis presque 10 ans (quand j’avais repris les études en informatique).
Infojune a été réalisé avec le CMS PHP SPIP car c’était rapide à mettre en place. Au départ, je n’avais pas prévu de faire une API. Donc je cherchais un outil juste pour la doc puisque l’API est déjà codée via un plugin SPIP. Si un jour, je veux en refaire une, j’essaierai d’utiliser des outils plus “modernes”.
Le CMS SPIP qui gère Infojune avait une faille de sécurité importante qui commençait à être largement exploitée. J’ai donc fait une MAJ ce matin vers la v4.1.9 du CMS (après une bataille acharnée avec GIT, le dépôt est à jour). Suite à une demande de @HugoTrentesaux , la pagination a été largement augmentée pour une navigation plus pratique.
Merci pour cette mise à jour ! J’enchaîne avec une suggestion :
Certaines personnes ont un projet de référencement des vidéos. Infojune pourrait faciliter leur travail en cherchant automatiquement des infos comme le titre ou la vignette depuis les différentes sources (youtube, peertubes, …).
Certains utilisateurs m’ont remonté que le input affichant une opération sur la page de suggestion était parfois trop petit. Je l’ai agrandi légèrement. Sur Firefox, ça passe bien mais si certains d’entre vous ont d’autres navigateurs et rencontrent des soucis, j’aimerais avoir votre retour (ouvrez la console de votre navigateur et remplacez l’opération par “10 + 10” pour avoir la longueur maximale).
Ça me paraît un peu compliqué à réaliser : Il faudrait créer un plugin SPIP en PHP qui irait chercher, via une tâche CRON, des vidéos (sur quels critères ? de quelle manière ?) pour créer dans sa base de données les articles pour chacune des vidéos (3 par videos, un dans chaque langue) tout en vérifiant si elle n’est pas déjà référencée dans la BDD pour éviter les doublons.
Un exemple de requête pour récupérer toute la hiérarchie du site :
query arbo {
rubriques(where: ["profondeur=1", "lang=fr"]) {
result {
...RubriqueFields
...RubriqueChildren
}
}
}
fragment RubriqueFields on Rubrique {
...ObjetField
articles {
result {
...ObjetField
url_site
createurs
licence
mots {
result {
...ObjetField
}
}
}
}
}
fragment RubriqueChildren on Rubrique {
rubriques {
result {
...RubriqueFields
rubriques {
result {
...RubriqueFields
rubriques {
result {
...RubriqueFields
}
}
}
}
}
}
}
fragment ObjetField on Objet {
id
titre
descriptif
logo
maj
rang
}
query maRecherche {
recherche(texte: "De la Thune à la June") {
...RechercheFields
... on Article {
rubrique {
...ObjetField
}
url_site
createurs
licence
mots {
result {
...ObjetField
}
}
}
}
}
fragment RechercheFields on Objet {
id
titre
typeCollection
descriptif
logo
maj
points
}
fragment ObjetField on Objet {
id
titre
logo
}
Cette requête ne pagine pas mais le nombre de résultats retournés n’est jamais vraiment trop élevé. Je vais bientôt modifier le format de la Pagination pour prendre en compte cette spécification recommandée.