3

rethinkdb には現在、Horizo​​n というアプリ サーバーがあり、その例には、バックエンド サーバー コードのない多くのクライアント アプリが含まれていることがわかります。

rethinkdb を使用して REST API サービスを作成したい場合、Horizo​​n はまだ価値を追加しますか、それとも rethinkdb ライブラリを直接使用して標準の node.js REST API を作成する必要がありますか?

Horizo​​n には認証、認可、パーミッションが組み込まれていることがわかりますが、これは役に立つかもしれませんが、それを標準の Web アプリではなく API に変えることで、Horizo​​n が本来あるべきでないものに曲がってしまうかどうかはわかりません。

4

2 に答える 2

1

rethinkdb を使用して REST API サービスを作成したい場合 - Horizo​​n はまだ価値を追加しますか

いいえ、CRUD 操作を RethinkDB データにマッピングする REST API エンドポイントだけが必要な場合、Horizo​​n は役に立ちません。

「リアルタイム」機能を備えた websocket API が必要で、ブラウザーで Horizo​​n クライアントを使用する予定がある場合、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 トランスポートを介して公開できる共通サービスを設計するスタックをいじっています。より複雑ですが、フェザーと Horizo​​n の両方を使用する可能性がありますが、両方のエンドポイント間でアクセス許可を正しくマップするための作業が必要です。(さらにスキーマの適用...) Feathers は、Horizo​​n に渡すことができる JWT を返すさまざまな認証プロバイダーをサポートしています (同じ secret_key を設定した場合)...

データベースにリアルタイム機能が必要ない場合は、すぐに使用できる JWT 認証があり、行レベルの承認に実際のデータベース ロールを使用するPostgRESTを確認することをお勧めします。「真実の唯一の情報源」。REST と GraphQL の両方が必要な場合は、PostGraphQL と一緒に使用できます。さらに、最近では JSON データを列に格納できるので、すべてが優れています。

非常に多くのオプション!

幸運を!

于 2016-07-30T23:58:19.023 に答える
0

ノード アプリに Horizo​​n を埋め込み、その機能のサブセットのみを使用できます: http: //horizo​​n.io/docs/embed/。認証に非常に簡単に便乗できるはずです。パーミッション システムはコレクションへのアクセスのみを制御するため、独自の REST API を実装している場合、パーミッションに便乗するのは難しくなります。

個人的には、認証のためだけに埋め込む場合は、価値がある以上に面倒になると思います。

于 2016-07-21T19:53:56.290 に答える