RethinkDB / Horizon: Intégration à Express: Accès côté serveur de données Horizon?

Il existe un exemple d’intégration express sur le Github Horizon.io, comme illustré ci-dessous: Exemple de serveur Horizon Express

Je comprends ce que cet exemple montre: si vous avez un serveur Express existant, vous pouvez append un serveur Horizon, qui expose une route côté client afin qu’il puisse se connecter au serveur Horizon via Websockets.

Cependant, y a-t-il un moyen pour la partie express du serveur d’accéder également aux collections dans Horizon? Par exemple, pour effectuer des tâches telles que l’authentification locale, les travaux CRON ou disposer de points de terminaison d’API acceptant les demandes PUT / POST.

D’après ce que j’ai compris, une connexion directe à la firebase database RethinkDB utilisée par Horizon n’est pas très utile, car une bibliothèque nommée Fusion définit dynamicment des métadonnées sur les tables afin d’obtenir un comportement de type Firebase pour lequel Horizon est utilisé.

Comment puis-je accéder à Horizon Data Server?

Pour accéder aux collections d’Horizon, vous pouvez utiliser le @ horizon / client.

npm install --save @horizon/client 

en code côté serveur:

 const Horizon = require("@horizon/client/dist/horizon"); const horizon = Horizon(); 

Et vous pouvez ensuite utiliser l’API Horizon: http://horizon.io/api/horizon/ pour des éléments tels que la connexion, les permissions et les utilisateurs; Ensuite, utilisez l’API de collection: http://horizon.io/api/collection/ pour obtenir un access aux mêmes collections que le client.

Vous devez créer un serveur express / koa / hapi dans lequel vous incluez horizon / serveur et fournissez votre propre implémentation pour les points de terminaison d’API personnalisés.

Lisez plus ici: http://horizon.io/docs/embed/