2

私は他の人が使用するためのAPIを構築しています。これは単純な Json リクエストで、ユーザーが一部のデータとして渡し、一部を返します。

私が望んでいるのは、私たちの API を保護し、ユーザーをオンまたはオフにして、各ユーザーが行った要求の数を記録できる、ある種のユーザー システムを用意することです。

Railsでこれを行う最良の方法は何ですか? リクエストを遅くしたくありません。おそらくdeviseを使用してそれを行う方法を見ることができますが、他の人の意見を聞くのは素晴らしいことです.

ありがとう

4

2 に答える 2

1

もう 1 つの方法は、3scale (http://www.3scale.net) を使用することです。トラフィック上限までは無料ですが、すべてのキー管理、ユーザー、ドキュメントなどを処理します。レールを使用しています。(他のライブラリはこちら: https://support.3scale.net/libraries )。

于 2012-05-07T18:13:15.960 に答える
0

これは、devise のトークン認証機能を使用する前に行いました ( https://github.com/plataformatec/deviseを参照)。

次のセットアップが機能することがわかりました。

  • API ユーザーごとにユーザー アカウントを作成します。
  • トークン認証用にデバイスを構成する
  • 各リクエストでトークンの送信を要求するようにトークン認証構成を設定します。

これにより、個々のユーザーを有効または無効にしたり、呼び出しを行った API ユーザーへのすべてのリクエストを追跡したりできます。

使用状況の追跡に本当に関心がある場合は、すべての API 要求を追跡するデータベース テーブルの作成も検討することをお勧めします。これをbelong_toユーザー テーブルに設定すると、さまざまなユーザーからのすべての要求を簡単に見つけることができます (例: @user.api_requests)。

ユーザーが行ったすべてのリクエストの数は次のようになります。

@user.api_requests.count

# or use a where clause to find how many of each type
@user.api_requests.where("api_request_type = ?", 'SomeAPICallType').count

最後に 1 つ -- 私は最近、API の構築に Grape ライブラリを使用しました。とてもよくできていて、私たちのニーズにぴったりだと思いました。特に、API をバージョン管理する機能が気に入っています。詳細はこちら:https ://github.com/intridea/grape/wiki

于 2012-05-06T12:43:11.783 に答える