私はrethinkdbとREST APIサービスを作成したい場合は - あなたが望むすべては、その後、あなたのRethinkDBデータへのREST APIエンドポイントマッピングCRUD操作であれば地平線 はまだありませんの値
を追加しません地平線はあなたを助けません。
horizonは、websocket APIが「リアルタイム」機能を備え、Horizonクライアントをブラウザで使用することを予定している場合に最適です。
Horizonは、ユーザーとアクセス許可をどのように扱うかについて強く主張しています(RethinkDBユーザーテーブルではなく、各アプリケーションごとに異なるユーザー/アクセス許可を使用してサーバー側で適用します)。
# RethinkDB
r.db('rethinkdb').table('users')
r.db('rethinkdb').table('permissions')
# Horizon
r.db('myapp_internal').table('users')
r.db('myapp_internal').table('users_auth')
私は現在、RESTやWebSocketのトランスポートを介して露出させることができる共通のサービスを設計するためにfeathersを使用してスタックで遊んでいます。より複雑ですが、私は両方の羽根とHorizonを使用するかもしれませんが、両方のエンドポイント間でパーミッションを正しくマッピングする作業がいくつかあります。 (Plus schema enforcement ...)フェザーはJWTを返すさまざまな認証プロバイダをサポートしています。同じ認証コードを設定した場合、地平線に渡すことができます。
リアルタイムの機能は必要ありませんPostgRESTは、JWT認証をそのまま使用できるため、ローレベルの認可に実際のデータベースロールを使用しているため、PostgRESTをチェックアウトすることができます。 "真実の一つの源"。 RESTとGraphQLの両方が必要な場合は、PostGraphQLと一緒に使用できます。また、JSONデータを最近の列に保存することもできます。
多くのオプションがあります。
幸運を祈る!
さらに掘り下げた後、真実のソースとして 'horizon'を扱い、RESTエンドポイントのエクスプレスノードサーバーでhorizonクライアントを使うのが実際には意味があります。例えばhttp://stackoverflow.com/questions/37402526/rethinkdb-horizon-integration-with-express-access-horizon-data-server-side –
私はHorizonを使ってRESTful CRUD APIとリアルタイムウェブソケットのトランスポート:https://github.com/ubergarm/stack-in-a-box –