API収益化とは
市内のすべてのスーパーマーケットの値引きと値引き情報を収集できるサービスを開発してデプロイしたとします.他の開発者があなたのデータを使用したい場合は、対応する API を提供する必要があり、他の開発者は料金を支払ってデータを取得します.このようにAPIを通じてデータの利用をお金に変えることがAPIマネタイズであり、APIマネタイズはサービスを収益化する理想的な方法です。
APIマネタイズのビジネスモデルを採用することを決めたら、次に考えるのは請求方法です.呼び出し回数で請求するか、直接請求するかを選択できますが、どの請求方法を採用する場合でも必要です. API 呼び出しの数がその数を超えた場合、トラフィックと速度制限操作を実行する必要があるため、ユーザーの身元を識別できることが重要です。ただし、サービスを購入するユーザーは企業ユーザーであることが多いため、ユーザーの個人 ID を識別するだけでは十分ではありません.企業アカウントにログインした後、企業の従業員は同じ請求先アカウントを共有できる必要があります.したがって、ユーザーが所属する組織を識別するためにも同様に重要です。
API収益化の適用
実生活では、誰もが連絡を取る必要がある認証コード機能、さまざまなクラウド ベンダーが提供するメッセージ キュー、テキスト認識などのサービス、およびさまざまなセキュリティが提供する WAF とコンテンツ フィルタリング サービスなど、API 収益化のアプリケーションはユビキタスです。このモデルは非常に成功しているため、API 収益化の強固な基盤を築くために適切なテクノロジー スタックが緊急に必要とされています。つまり、API をきめ細かく管理する必要があります。
API を管理する場合、誰が何をどこに公開できるかを制御できる必要があり、これらの API の公開が URL パターン、命名規則、アクセス制御規則などの組織の標準に準拠していることを確認する必要があります。また、各ビジネス機能は、公開された API の設計の更新または改善、トラフィック制御、レート制限、およびセキュリティ ポリシーの適用など、独自の API を個別に管理できます。また、使用状況、パフォーマンス、およびその他のメトリックをリアルタイムで観察できる必要もあります。
API を管理するために導入する必要があるツールは、API ゲートウェイであり、API ゲートウェイは、API を管理する過程で発生するさまざまな問題を解決するのに役立ちます。中央プロキシとして、API ゲートウェイは、クライアントからのすべての着信要求を目的の宛先 (バックエンド サービス) にルーティングし、API をより安全で管理しやすくしますが、ほとんどの API ゲートウェイはさまざまな承認と認証をサポートしています。 API だけでなく、レート制限やその他の多くの機能も含まれています。
API ゲートウェイ用の人気のあるオープン ソース プロジェクトは多数ありますが、最も顕著なのは Apache APISIX と、それに代わるエンタープライズ SaaS ソリューションである API7 Cloud です。
APISIX の API 収益化の実践
Apache APISIX は、上記のさまざまな機能をサポートするだけでなく、豊富なプラグインを介して Prometheus、OpenTelemetry、Apache Skywalking、およびその他のオブザーバビリティ プラットフォームと統合し、API を分析して完全なオブザーバビリティの可視性を得る能力をさらに強化します。同時に、Apache APISIX は、前述のユーザー ID を識別するためのコンシューマーの概念を提案しました。
異なるコンシューマーは異なるユーザーに対応します. コンシューマー上で対応するプラグインとアップストリームをバインドすることにより、異なるコンシューマーが同じ API を要求すると、ユーザー認証システムによって識別された後、ゲートウェイ サービスは、異なるプラグインまたはアップストリームに応じて対応します.現在の要求ユーザー情報 さまざまなユーザーの管理を容易にするための構成。
ただし、コンシューマーのみをサポートするだけでは不十分で、前述のエンタープライズ ユーザーの場合、複数のコンシューマーが同じ消費クォータを共有する必要があり、各コンシューマーの構成を個別に管理することしかできないと、操作が煩雑になります。したがって、APISIX はコンシューマー グループの概念を提案しました. コンシューマー グループを使用すると、複数のコンシューマーが同じ構成セットと同じ消費クォータを共有できます。
API 収益化における APISIX の実践を理解したら、具体的なアプリケーションを見てみましょう。
- 企業の電流制限と速度制限を構成し、企業のユーザーが同じ構成を共有する
# create consumer group
curl http://127.0.0.1:9180/apisix/admin/consumer_groups/company_a -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
"plugins": {
"limit-count": {
"count": 200,
"time_window": 60,
"rejected_code": 503,
"group": "$consumer_group_id"
}
}
}'
# create consumer 1
curl http://127.0.0.1:9180/apisix/admin/consumers -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
"username": "jack",
"plugins": {
"key-auth": {
"key": "auth-one"
}
},
"group_id": "company_a"
}'
# create consumer 2
curl http://127.0.0.1:9180/apisix/admin/consumers -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
"username": "johnson",
"plugins": {
"key-auth": {
"key": "auth-two"
}
},
"group_id": "company_a"
}'
# create route
curl http://127.0.0.1:9180/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
"uri": "/get",
"plugins": {
"key-auth": {}
},
"upstream": {
"type": "roundrobin",
"nodes": {
"httpbin.org": 1
}
}
}'
# hit the route
curl -i http://127.0.0.1:9180/get -H 'apikey: auth-one'
...
X-RateLimit-Limit: 200
X-RateLimit-Remaining: 199
...
curl -i http://127.0.0.1:9180/get -H 'apikey: auth-two'
...
X-RateLimit-Limit: 200
X-RateLimit-Remaining: 198
...
# change count value to 2 requests per minute
curl http://127.0.0.1:9180/apisix/admin/consumer_groups/company_a -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
"plugins": {
"limit-count": {
"count": 2,
"time_window": 60,
"rejected_code": 503,
"group": "$consumer_group_id"
}
}
}'
# hit the route
curl -i http://127.0.0.1:9180/get -H 'apikey: auth-two'
...
X-RateLimit-Limit: 2
X-RateLimit-Remaining: 1
...
curl -i http://127.0.0.1:9180/get -H 'apikey: auth-one'
...
X-RateLimit-Limit: 2
X-RateLimit-Remaining: 0
...
# no count, HTTP 503
curl -i http://127.0.0.1:9180/get -H 'apikey: auth-one'
HTTP/1.1 503 Service Temporarily Unavailable
# after a minute, count recover
curl -i http://127.0.0.1:9180/get -H 'apikey: auth-one'
...
X-RateLimit-Limit: 2
X-RateLimit-Remaining: 1
...
# create another route
curl http://127.0.0.1:9180/apisix/admin/routes/2 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
"uri": "/anything",
"plugins": {
"key-auth": {}
},
"upstream": {
"type": "roundrobin",
"nodes": {
"httpbin.org": 1
}
}
}'
# you could see both routes share the same count
curl -i http://127.0.0.1:9180/get -H 'apikey: auth-one'
...
X-RateLimit-Limit: 2
X-RateLimit-Remaining: 1
...
curl -i http://127.0.0.1:9180/anything -H 'apikey: auth-one'
HTTP/1.1 503 Service Temporarily Unavailable
...
要約する
企業は、API 収益化を通じてサービスとデータを収益に変換します. API 収益化を実現するには、専門的な API 管理ツールを導入する必要があります: API ゲートウェイ. 最も人気のある API ゲートウェイは APISIX です. APISIX には、消費者や消費者グループは、ユーザーによる API の管理を大幅に容易にし、企業が API をよりスムーズに収益化できるようにします。
API7.aiとAPISIXについて
API7.ai ( Branch Technology ) は、API の処理と分析を提供するオープン ソースの基本ソフトウェア会社で、2019 年に新世代のクラウドネイティブ API ゲートウェイである APISIX をオープン ソース化し、Apache Software Foundation に寄付しました。それ以来、API7.ai は Apache APISIX の開発、保守、コミュニティ運用を積極的にサポートしてきました。API7.ai の目標は、数千万人のコントリビューター、ユーザー、およびサポーターを擁する世界クラスのオープン ソース プロジェクトを作成することです。