Discuss the new CW client/server API
Objectif : avoir une instance CubicWeb capable de retourner des données via une API. CubicWeb RQLController ne devrait plus être nécessaire pour utiliser CubicWeb. Dans l'immédiat, nous passerons par un cube à part.
Pour pouvoir utiliser CubicWeb comme gestionnaire de données, il faut tout d’abord mettre en place l’API pour pouvoir obtenir toutes les informations dont nous avons besoin. Au cours de l’atelier, nous avons ainsi extrait les besoins suivants :
- lister toutes les routes disponibles et expliquer le fonctionnement de l’API
- avoir une entité précise sous plusieurs formats par négociation de contenu
- exécuter des requêtes RQL
- obtenir le schéma
- obtenir les informations du site (versions des cubes installées, etc.)
Une tâche importante qui nous ne savons actuellement pas évaluer est la mise en place du mécanisme d’authentification. Actuellement, il y a beaucoup de code dans CubicWeb pour l’authentification et la gestion des permissions. Une partie de ce code est sans doute obsolète ou remplacé depuis longtemps par d’autres choses. Parmi les idées qui sont remontées lors du atelier, il a été évoqué de déléguer une partie de tout ça à Pyramid qui est plutôt bien documenté de ce côté. Dans tous les cas, nous pensons qu’il est important de passer du temps dans le code pour éliminer le code mort et simplifier tout ça.
Une fois l’authentification et la sécurité clarifiée, la mise en place de l’API répondant aux besoins listés précédemment ne devrait pas poser de soucis.