2016-07-21 3 views
3

私はrethinkdbにhorizo​​nというアプリケーションサーバーがあり、その例にはバックエンドサーバーコードのない多くのクライアントアプリケーションが含まれていることがわかります。は残りのAPI Webサービスによく適していますか?

rethinkdbを使用してREST APIサービスを作成したい場合は、水平線はまだ値を追加しますか、rethinkdbライブラリを使用して標準node.js残りのAPIを作成するだけですか?

私は地平線には有用であるかもしれないいくつかの認証、許可、権限がありますが、標準のWebアプリケーションの代わりにAPIに変換すると、水平でないものになってしまう。

答えて

1

私はrethinkdbとREST APIサービスを作成したい場合は - あなたが望むすべては、その後、あなたのRethinkDBデータへのREST APIエンドポイントマッピングCRUD操作であれば地平線 はまだありませんの値

を追加しません地平線はあなたを助けません。

horizo​​nは、websocket APIが「リアルタイム」機能を備え、Horizo​​nクライアントをブラウザで使用することを予定している場合に最適です。

Horizo​​nは、ユーザーとアクセス許可をどのように扱うかについて強く主張しています(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を使用してスタックで遊んでいます。より複雑ですが、私は両方の羽根とHorizo​​nを使用するかもしれませんが、両方のエンドポイント間でパーミッションを正しくマッピングする作業がいくつかあります。 (Plus schema enforcement ...)フェザーはJWTを返すさまざまな認証プロバイダをサポートしています。同じ認証コードを設定した場合、地平線に渡すことができます。

リアルタイムの機能は必要ありませんPostgRESTは、JWT認証をそのまま使用できるため、ローレベルの認可に実際のデータベースロールを使用しているため、PostgRESTをチェックアウトすることができます。 "真実の一つの源"。 RESTとGraphQLの両方が必要な場合は、PostGraphQLと一緒に使用できます。また、JSONデータを最近の列に保存することもできます。

多くのオプションがあります。

幸運を祈る!

+0

さらに掘り下げた後、真実のソースとして 'horizo​​n'を扱い、RESTエンドポイントのエクスプレスノードサーバーでhorizo​​nクライアントを使うのが実際には意味があります。例えばhttp://stackoverflow.com/questions/37402526/rethinkdb-horizo​​n-integration-with-express-access-horizo​​n-data-server-side –

+0

私はHorizo​​nを使ってRESTful CRUD APIとリアルタイムウェブソケットのトランスポート:https://github.com/ubergarm/stack-in-a-box –

0

ノードアプリケーションにHorizo​​nを埋め込み、その機能のサブセット(http://horizon.io/docs/embed/)のみを使用できます。あなたは認証をかなり容易にピギーバックできるはずです。権限システムはコレクションへのアクセスのみを制御するため、独自のREST APIを実装している場合は、アクセス許可に乗っ取るのが難しくなります。

個人的には、認証のためだけに埋め込むのであれば、それは価値があると思われます。

関連する問題