はじめに
- みなさんは、APIをチーム内で共有する際にどのような手法を取っているでしょうか?
- フロントエンド担当とAPI担当が別れているチームでのやりとりがスムーズに行く方法を検討している中で、AWSから提供されている「AWS API Gateway Developer Portal 」を使用しました。
- 以前に一度使用した時は使用開始になるまで色々と手順が多く、まだ使いにくい印象を持っていたのですが、2019年3月末にVersion3がリリースされ、AWSの各サービスと統合され非常に使いやすくなりました。
- Developerポータルを使ってみて非常に良いサービスだと感じましたので、どのようなことが出来るサービスなのか紹介したいと思います。
AWS API Gateway Developer Portal とは
- 「API Gateway Developer Portal 」とは、第三者にAPIを公開し利用出来るようにするために、AWSから提供されているアプリケーションです。
- 管理者専用のUI画面からAPI Gatewayで管理されているAPIを公開することができます。
また、OpenAPIの定義ファイル(JSON,YAML)をアップロードすることで、API Gatewayで管理されていないAPIを公開することも可能です。 - 「API Gateway Developer Portal 」は、API Gateway / Lambda / Cognito / DynamoDB / S3 /CloudFront 等で構成されたサーバーレスWebアプリケーションとなり、画面はReactで構築されています。ソースは、GitHub上でApache 2.0ライセンスで公開されていますので、自由にカスタマイズすることも可能です。
API Gateway Portal のユーザ種別
- API Gateway Portalの利用者には以下の2種類が存在します
- 一般ユーザー
- 管理者ユーザー
- それぞれのユーザーでどんなことが出来るのかをご紹介します
Developerポータル利用者が出来ること
Developerポータルにアクセスする
探してビルドしましょう
『スタートアップガイド』を読んで、アプリケーションをすぐに起動して実行するための具体的な方法を学んでください。
どのようなAPIが提供されているかドキュメントを確認し、SDKを生成してみましょう。
サブスクリプションの管理や、現在の使用状況の確認、APIキーの取得、APIのテストを行うには、サインインしてください。
「スタートアップガイド」
・アカウントの作成とAPIの購読
APIを使用するには、開発者アカウントを作成する必要があります。
開発者アカウントは、APIにアクセスするためのAPIキー、APIをテストするためのプレイグランド、およびAPIの使用状況を確認するためのメトリクスを提供します。
右上のボタンからアカウントの作成またはサインインを行いましょう。
新しいアカウントを作成すると、APIキーが新しく作成されますが、APIにはリンクされていません。
特定のAPIに対してキーをアクティブにするには、必要なAPIに移動して「購読(Subscribe)」をクリックします。
これで、APIキーがAPIに紐づけられ、そのメソッドを呼び出すことができます。
APIの構成によっては、1つのAPIにサブスクライブすると、複数のAPIにサブスクライブされる場合があります。
これらのAPIには、関連する機能がある場合や価格プランが共有されている場合があります。
これらのいずれかに対する要求は、使用時に一緒にカウントされます。
APIの使い方を理解するのは難しいことです。
「Try it!」機能を使用して、APIのリクエストおよびレスポンスの例を取得します。
これにより、APIキーを使用してバックエンド・サービスへのAPI呼び出しが行われ、必要なすべての入力パラメーターと実際の応答を含むサンプルcurlリクエストが提供されます。
何らかの理由でAPIキーが必要な場合は、ログイン後にダッシュボードで確認することができます。
・使用状況を確認する
通常、各APIには、APIキーごとに使用制限が設定されています。
ダッシュボードの使用状況でAPIの使用状況を確認することができます。
ログインしていない状態では、これ以上の操作は出来ませんので、以下に記載の流れでアカウント作成しログインしましょう
利用者ユーザアカウントを作成する
パスワードポリシーは管理者がCognitoで設定したパスワードポリシーい準拠します
ログインする
利用可能なAPI/ドキュメントを確認する
APIを購読(Subscribe)する
APIドキュメントのEndpointの下の「Subscribe」をクリックすることで、対象のAPIを購読することができます。
SubscribeすることでAPIキーがAPIに紐づけられて利用可能となります。
APIをテスト実行する
「response」部分に実行結果が表示されます
SDKをダウンロードする
- APIドキュメントの「Download SDK」をクリックし、取得したいSDKのプログラミング言語を選択してください
現時点(2019年5月)では「Android」「JavaScript」「iOS(Objective-C)」「iOS(Swift)」「Java」「Ruby」のSDKが取得可能です
APIの利用状況を確認する
管理者にフィードバックを送る
管理者パネルで出来ること
API Gatewayで管理されているAPIを公開する
- API Gatewayで管理されているAPIが一覧で表示されます
Developerポータル利用者に公開したいAPIの「Displayed」の「False」をクリックし「True」に変更します
API単位での公開、あるいはメソッド単位での公開も可能です
公開を停止する場合は「False」に変更すれば、DeveloperポータルからAPIは見えなくなります
APIを更新する
API Gatewayの内容を更新しても、公開されているAPIは自動的には変更されません。最新の状態に更新するためには一覧の「Update」をクリックします
これで公開されているAPI情報が更新されます
SDKの生成を可能にする
- APIを公開してもSDKの生成はデフォルトでは出来ないようになっています
SDKの生成を可能とするには、API一覧の「Allow Generating SDKs」の「Disabled」をクリックして「Enabled」に変更します
これで利用者はSDKのダウンロードが可能となります
SDKの公開を停止する場合は「Disabled」に戻してください
API Gatewayで管理されていないAPIを公開する
- OpenAPI定義ファイルを用意することで、API Gatewayで管理されていないAPIを公開することができます
OpenAPI2.0(Swagger)形式または 3.x形式のJSON/YAML/YMLファイルをアップロードすることで公開されます
OpenAPI2.0(Swagger)形式または 3.x形式のJSON/YAML/YMLファイルを選択し「Upload」をクリックします
APIの公開を停止する場合は「Delete」をクリックし、Generic APIsから消すことで公開は停止されます
Developer Portal のセットアップ
Developerポータルの構築
-
Developer Portalをセットアップする方法は、以下の2パターンあります
- AWS Serverless Application Repository 使用
- AWS SAM 使用
セットアップ方法の解説は日本語化されたAWSドキュメントが用意されていますので、そちらを参照ください
管理者ユーザの追加
- 管理者ユーザを作成するためには、一度作成したユーザを管理者に昇格させる必要があります
- AWSコンソールのCognitoを開いて、対象のユーザを「dev-portalAdminsGroup」グループに追加します
さいごに
- v3.0リリース時はドキュメントが英語版しか準備されていませんせしたが、現時点では日本語版ドキュメントもあり、非常に使いやすくなっています
- 今回の記事で興味を持った方は是非一度Developerポータルを立ち上げてみてください。