5

RESTfulAPI設計に関する提案を探しています。REST APIスキーム、認証/承認の方法などについてたくさん読んだことがあります。私が判断できないのは、本当にAPIキーを使用する必要があるかどうかです。私が理解していることから、APIキーの使用は、使用状況を監視し、各アプリケーションのリクエストを制限し、統計データを取得する場合に役立ちます。

私が避けたいのは、アプリケーションの追加/管理/削除およびアプリケーション管理者の追加/削除のために追加のWebインターフェイスを作成する必要があることです。たぶん、APIキーの配布を行うためのより簡単な方法があります。それとも私は本当にそれらが必要ですか?つまり、使用状況を監視して制限することはクールで便利に聞こえますが、キーの配布のために必要な他のことを行う価値はありますか。

具体的には、私のWebサイトはslideshareやscribdのようなものです。ドキュメントの追加や管理、ユーザーに関する情報の取得などの機能にAPIアクセスを許可したいと思います。したがって、たとえばファイルをアップロードするには、何らかの方法で認証し、特定のアカウントを使用してそれを行う必要があります。この場合、APIキーが要件ですか、それともユーザーの認証に固執することができますか?

では、APIキーを処理するための最良の方法は何だと思いますか?それとも私はそれらを使用する必要がありますか?キーを配布(作成、削除)するためのより賢い方法はありますか?

前もって感謝します :)

4

2 に答える 2

4

マッシュリーhttp://www.mashery.com/とプログラマブルウェブをよく知っていますか?

多分いくつかの有用なリソースがあり ますhttp://www.mashery.com/solution/collegeboard

および http://www.3scale.net/

私は統計と制限のためにAPIキーを使用しますが、GoogleのようにAPIキーなしでいくつかのサービスも提供します


Restler http://luracast.com/products/restler/
Frapi http://getfrapi.com/
The Datatank http://thedatatank.com/
Services(Drupal専用)http://などのソリューションを使用してAPIを簡単に作成できます 。 drupal.org/project/services

さらにいくつかあります:http://blog.programmableweb.com/2011/09/23/short-list-of-restful-api-frameworks-for-php/

于 2011-05-14T20:55:26.767 に答える
2

上記の投稿でも回答しましたが、スペースが足りなくなりました。免責事項として、私は3scale(http://www.3scale.net)で働いているので、それに基づいて私の応答を解析することをお勧めします:)。

あなたの質問に対する答えは、APIが公開するリソースと、追跡/制限することを目的としているものによって異なります。ほとんどの機能はある種のユーザーアカウントに関連付けられているようですが、サードパーティによって実装される可能性があります。

この場合、最も有用なパターンは、APIとユーザー資格情報を呼び出す各アプリケーションの識別子(パブリックまたはシークレット)を持つことです。アプリケーション識別子は、APIKeyまたは単なる名前(「tweetdeck」など)にすることができます。サードパーティのアプリケーションが多数ある場合は、これらの識別子を追跡し(これは、それらを発行するための最小限の方法を意味します)、各アプリを誰が作成したか+それらをオフにする機能があるかどうかを知ることはおそらく有用です(シャットダウンする場合のみ)ユーザーベースを悪用するものを削除します)。また、各ユーザーとアプリがAPIで生成できるトラフィックの量の制限を評価することもできます。そのため、識別子を用意しておくと便利です。

また、ユーザーを認証しているが、ユーザーが使用するアプリをサードパーティが作成できるようにしている場合は、不正なコードやサイトがユーザーのパスワードを取得しないように、oAuth(http://www.oauth.net)を必ず検討してください。

あなたは外部サービスに熱心ではないことを上で述べました-問題ありません、3scaleは実際にあなたのシステムにローカルなすべてのAPI認証を行うことによって機能します(例えばコードプラグインの1つで:https ://support.3scale.net/librariesまたはVarnishのようなプロキシで:https ://github.com/3scale/libvmod-3scale/ )、クラウドで追跡を行います。明らかに、すべてのユースケースに適合するわけではありませんが、箱から出してすぐに使える便利なツールをたくさん提供できます。

于 2012-05-16T15:31:06.287 に答える