Silverpeas dispose désormais d'une API Rest de recherche. Elle pourra tout de même être amenée à évoluer.
Un travail conséquent et indispensable a été nécessaire sur le code legacy afin de centraliser la recherche full-text et/ou taxonomique. Un service dédié à la recherche a été créé. L'objectif est de fournir un service simple qui fait abstraction des deux modes de recherche qui peuvent être complémentaires. Il s'appuie donc sur les modules existants silverpeas-core-pdc et sur la recherche full-text. Ce nouveau service est utilisé par l'UI de recherche de Silverpeas ainsi que par les applications Médiathèque et Annuaire d'experts. Cela a permis de supprimer de très nombreuses lignes de code (souvent dupliquées).
Ce nouveau service est également utilisé par le nouveau service REST de recherche.
Son URI est la suivante :
http://localhost:8000/silverpeas/services/search
Les paramètres possibles sont les suivants :
- query : la chaîne recherchée (ex : projet)
- spaceId : l'identifiant de l'espace sur laquelle la recherche est limitée (ex : WA12)
- appId : l'identifiant de l'application sur laquelle la recherche est limitée (ex : kmelia50)
- startDate : les résultats retournés sont créés après la date mentionnée
- endDate : les résultats retournés sont créés avant la date mentionnée
- taxonomyPosition : la position sur laquelle la recherche est limitée (ex : 8:/0/17/,9:/0/18/)
La requête retourne un tableau de résultat. Chaque résultat est constitué des données suivantes :
{componentId : "kmelia50"
creationDate : "2016-09-29"
description : "La description du résultat"
id : "11220"
name : "Outil #1"
type : "Publication"
updateDate : "2016-10-15"}
Pour l'heure, tous les résultats de la recherche sont retournés.
L'utilisation du plugin de recherche PDC a été généralisé. Désormais, c'est la seule façon de faire une recherche sur le PDC.
La page de recherche (utilisée en pied de page via le paramètre displayPDCFrame du look) a été modifiée afin d'utiliser le plugin.
Là encore, cela a permis de simplifier grandement le code tout en offrant une expérience utilisateur améliorée.
PR à valider et à intégrer :