API Gatewayを活用したOpen APIサービス作り

f:id:navercloud:20210224221146p:plain

皆さん、こんにちは。NAVERクラウドプラットフォームです。
本日はAPI Gateway商品についての簡単な紹介と、これを用いてOpen APIサービスを作る方法を説明します。

最近は多くのサービスがAPIの形で制御できるように開発されており、そのAPIはOpen APIの形で一般のユーザーに提供されています。例えば、NAVERクラウドプラットフォームから提供されているMapsCAPTCHAといった様々なOpen APIサービスは、API Gatewayを用いて提供されています。

このようなOpen APIを提供するには、セキュリティや認証、使用量の制御、APIバージョン及び明細書の管理、急なトラフィック増加など、考慮すべきことがたくさんあります。しかし、NAVERクラウドプラットフォームから提供されるAPI Gateway商品を利用すれば、このような点を気にすることなく手軽にOpen APIサービスを構築できます。

API Gatewayではカスタム認証、Swagger UI、API Overviewを通じてAPI Documentを管理できます。また、Stageのリリース履歴を管理してAPIバージョンを管理したり、以前バージョンにロールバックする機能やリリースしたAPIに対するSDKをダウンロードできる機能など、Open APIを運用するうえで便利な機能を提供しています。

 API Gatewayの詳細をみる 

では、これからAPI Gateway商品を用いて以下のような条件を持つOpen APIサービスの作り方を説明いたします。

▶ 発行したAPI KeyでのみOpen APIを使用するように制限

API Key別の使用量制御機能(日/月)

APIの登録・リリース

まずはユーザーガイドを参考にして、API Gateway商品に対し「API登録」と「APIリリース」を行ってください。

それからOpen APIサービスに合わせて、一部の設定を以下のとおり変更してください。

f:id:navercloud:20210225120923p:plain

Productの購入方法には、「公開 - 自主購入」と「保護 - 承認必要」があります。

▶ 公開 - 自主購入:商品のAPIを誰もが使用できます。

▶ 保護 - 承認必要:商品のAPIを使用するには、掲示者の承認が必要です。

ここでは、特定のAPI KeyでのみAPIを呼び出すよう制限する必要があるので、Productの購入方法を「保護 - 承認必要」に変更します。

f:id:navercloud:20210225120927p:plain

Productの購入方法を変更したとしても、メソッドで「API Key必要」の設定がインアクティブ状態になっていると、このメソッドはAPI Keyなしで使用できます。

よって、制限が必要なメソッドは「API Key必要」の設定をアクティブにしてください。 カスタム認証のロジックをAPI Gatewayで処理したい場合、Authorizerが利用可能ですのでご参考ください。

f:id:navercloud:20210225120931p:plain

トラフィックの急送に備えるため、StageのThrottlingはエンドポイントの可用量に合わせて設定を行ってください。この設定により、Throttling設定以上のトラフィックが発生する場合は、API Gatewayから「Throttle Limited」というエラーメッセージがリターンされます。

f:id:navercloud:20210225120936p:plain

また、Usage Planが連結されていないAPI Keyの使用を防ぐために、StageのDefault Usage Planのリクエスト処理限度を0に変更します。

 

本格的なOpen APIサービス作り

NAVERクラウドプラットフォームのOpen APIの使用方法

NAVERクラウドプラットフォームから提供される商品のOpen APIを使用するには、認証キーが必要です。認証キーの作成および呼び出し方法は、ガイドをご参照ください。

API Gatewayコンソールから提供されるすべての機能は、Open APIで提供されています。
この中からOpen APIサービス作りに必要なAPIを確認してみましょう。 

以下のAPIを使用するには、先ほど作っておいたProduct、API、StageのID情報が必要です。
リリースされたStage Documentのリンクをクリックすると、URLから必要なIDを取得できるのでご参考ください。

f:id:navercloud:20210225120941p:plain

ここからは、以下の機能を提供するために必要なAPI GatewayのOpen APIについて説明いたします。

API使用のためのAPI Keyの発行および削除

API Keyの使用量の変更および確認

API KeyのPrimary/Secondary Keyの変更

 

1. Open APIを使用するためのAPI Keyの発行および使用量の設定

以下の順序でAPIを呼び出してAPI Keyを発行し、そのAPI Keyを用いてOpen APIを使用できるように設定します。

▶  API Key作成 - Product購入

API Keyの使用量を制御するには、API KeyにUsage Planを作成して連結します。

使用量の制御は、Usage PlanにつながったStageの使用量を合算して処理されます。

複数のStageを一つの使用量として制御したい場合は、Usage Planに複数のStageを連結してください。

Usage Planを作成 - StageにUsage Planを連結する - API KeyのUsage Planを変更

 

2. API KeyとUsage Planの削除

使用しないAPI KeyとUsage Planを削除してください。

API Keyの削除 - Usage Planの削除

 

3. API Keyの使用量の変更およびキーの更新

API Key別に作成したUsage Planの設定を変更して、使用量を制御できます。

 Usage Planの修正 

API Keyの漏洩などにより、API Keyを変更する必要がある場合に使用します。

 API Keyの更新

 

4. 使用量の確認

API Keyが呼び出した使用量と日/月別の使用制限設定を確認できます。

購入したAPI Keyの使用量の確認

 

API KeyとUsage Planの最大作成数の制限

API Gatewayでは、アカウント別にAPI KeyとUsage Planを作成できる最大数が以下のように制限されています。

API Keyの最大作成数:500

Usage Planの最大作成数:300

この制限を調整したい場合、NAVERクラウドプラットフォームのお客様サポートまでお問い合わせください。

 NAVERクラウドプラットフォームにオンラインでお問い合わせる

f:id:navercloud:20210108155858p:plain

ここまで、API Gatewayを活用してOpen APIサービスを作る方法を紹介いたしました。

さらに知りたい点はコメントやNAVERクラウドプラットフォームのお客様サポートを通じてお問い合わせいただければ、回答いたします。

次回の投稿でも有益な情報を提供いたします!

引き続きよろしくお願いします。

 

f:id:navercloud:20201209180753p:plain