※この記事は、下記MuleSoftの記事を、許可を得て翻訳したものです。
https://developer.mulesoft.com/guides/quick-start/deploying-and-managing-your-first-api
はじめに
前回のチュートリアルで最初のMuleアプリケーションの作成に成功したので、今回はAPI ManagerでAPIを管理する方法を学びましょう。API Managerではレート制限、IPブラックリスト、認証、脅威保護などのポリシーを追加できます。これらのポリシーはAPIを公開した後に追加できるため、APIが既に利用者に公開されている場合でも、設定を監視および変更できます。最初に「API Autodiscovery」をMuleアプリケーションに追加して、アプリケーションをAPIゲートウェイに登録し権限とSLAを設定する方法を学びます。次にMuleアプリケーションをCloudHubに公開し、API Managerを介してAPIを管理する方法を学びます。いくつかの簡単なステップから始めましょう。前の2つのチュートリアルをまだ読んでいない場合は、ここをクリックして前回のチュートリアルに戻ってください。
ステップ1:Anypoint Platformにサインアップする
Anypoint Platformのトライアル版のアカウントをもっていない場合は、下記にリンクからアカウントを作成してください。
前の2つのチュートリアルをまだ読んでいない場合は、ここをクリックして最初のAPIを作成することから始めます。
ステップ2:API Autodiscoveryを構成しCloudHubにアップロードする
API仕様をExchangeに公開したらAPI Managerを使用してAPIの登録、セキュリティポリシー、SLA、分析の設定をAPIのライフサイクル全体で開始することができます。Anypoint PlatformにログインしてManagement Center > API Managerを選択してください。
すべての組織にはデフォルトでsandboxとdesign環境が用意されており、独立した構成、ポリシー、およびプロキシを持つことができます。(sandbox環境は通常、使用可能なリソースが制限されており、アプリケーションの規模に応じて、展開ターゲットまたはワーカーのサイズを調整する必要がある場合があります。)API Managerに移動し、「Manage API」と書かれた青いボタンをクリックして「Manage API from Exchange」を選択します。最初のチュートリアルで作成したContact APIを選択します。
「implementation URI」は空白のまま、「Asset Version」が公開されている最新バージョンであることを確認します。
「Save」ボタンをクリックするとAutodiscoveryに使用するAPI IDを含む新しい画面が表示されます。Anypoint Studioで使用する際は、このAPI IDをコピーして使用します。
アプリケーションをゲートウェイに登録するには、Anypoint StudioアプリケーションでAPI Autodiscoveryを追加して構成する必要があります。API Autodiscoveryコンポーネントを追加するには:
- Anypoint Studioで「Global Elements」をクリックして、Muleアプリでグローバルにアクセスできるすべての要素を表示します。
- 「Create」ボタンをクリックします。
- 「Component configurations」ドロップダウンを展開します。
- 「API Autodiscovery」を選択し、OKを押します。
次に上記で取得したAPI IDをAPI Autodiscovery Global Element Propertiesウィンドウに貼り付けます(このウィンドウにアクセスするには「Global Elements」タブ >「API Autodiscovery」 > 「Edit」ボタン)。フロー名を選択するには、contact-api-main(またはメインフローに名前を付けたもの)を必ず選択してください。「OK」をクリックして変更を保存します。
アプリケーションを公開する前に、組織の資格情報を取得して、ゲートウェイに登録されているアプリを制御する必要があります。これを行うには、API IDと共に使用されるClient IDとSecretを提供し、それを正しい組織、環境、およびAPIバージョンにプロビジョニングする必要があります。 Anypoint Platformに再度ログインし、「Access Management」> 「Environments」に移動します。次に、PI Managerの環境と一致する環境名をクリックすると、新しいライトボックスが表示されます。次のセットアップのために、このウィンドウを開いたままにします。
ステップ3:Anypoint StudioからCloudHubにデプロイする方法
最初のMuleアプリケーションを開発しAPI ManagerでAPI自動検出をセットアップしたので、Anypoint Studio内からCloudHubにデプロイしましょう。 CloudHubはAPIやアプリケーションをデプロイするためのMuleSoft管理プラットフォームです。
開始するには「Package Explorer」タブで「contactapi」というプロジェクトフォルダーを右クリックし、「Anypoint Platform」>「Deploy to CloudHub」をクリックします。環境は「SANDBOX」を選択し、アプリケーションに任意の名前を付けます。このプロジェクトではObject Storeを使用していないため「Use Object Store v2」がオフになっていることを確認してください。
これによりアプリケーションの展開ウィンドウが開き、公開先の環境を選択(前の手順と同じ)、ランタイムバージョン、リソース割り当てなどを設定できます。
選択するデプロイメント名はすでに使用されている可能性があります。この場合は使用可能な別の名前を入力してください。またワーカーのサイズ制限に達する可能性がありますが、ワーカーサイズを「0.1 vCore」に減らすとアカウントが十分にプロビジョニングされる場合があります。
上記の手順から、アプリケーションはAPI IDを介してどのAPIに関連付けるかを認識していますが、登録に必要な認証パラメーターがありません。プロパティファイルを使用してアプリ自体に焼き付けるのではなく、ステップ2のClient IDとSecretをデプロイメントウィンドウのプロパティタブに配置して、アプリが自身を認証し必要に応じて簡単に更新できるようにします。プロジェクトを編集する必要はありません(サンドボックスから本番への昇格など)。次のプロパティを挿入し、前のセクションのフィールドを適宜置き換えます。
「Deploy Application」>「Open in Browser」をクリックしてRuntime Managerから公開されたAPIとアプリケーションのURLを取得します。これによりアプリケーションの展開ウィンドウが開き、公開先の環境を選択(前の手順と同じ)、ランタイムバージョン、リソース割り当てなどを設定できます。
デプロイしたアプリケーションをCloudHubで開いたら、ランタイムマネージャーに表示されているURLを取得し、そのURLにPostManから以前と同じ用に送信してみてください。APIは期待している値を返却してくれるはずです。
CURLリクエストに従ってAPIをテストすることもできます(デプロイされたアプリインスタンス名を独自のものに置き換えます)。
curl -X GET http://{{YOUR ROOT URL}}/api/contacts
ステップ4:API Managerでデプロイされたアプリにポリシーを設定する
テストが正常に完了したらAPI Managerに戻ります。APIの「Status」列が「Active」とマークされ、その横に緑のドットが表示されていることを確認してください。これはアプリがゲートウェイに正常に登録され管理できることを意味します。アプリが正常に登録されていることが確認出来たら、次にAPIにレート制限ポリシーを設定します。
- 「v1.0.」をクリック。API設定画面に移動します。
- 「Policies」>「Apply New Policies」>「Late limiting」>「Configure Policy」を選択。レート制限の構成ウィンドウが表示されます。
- レート制限を次のように構成します。
- # of Reqs: 1
- Time Period: 1
- Time Unit: Minute
PostManまたはCURLリクエストに戻り、もう一度リクエストを送信してみてください。レート制限が設定されると、429 Too Many Requestsエラーが発生することがわかります。この機能をテストしたら、次のチュートリアルでこのAPIを使用する必要があるため、このAPIポリシーを自由に削除してください。
おめでとうございます!それでは、APIをSalesforceと統合しましょう
これでアプリがデプロイされ分析および管理できるようになりました。アプリはゲートウェイに登録されており、ポリシーを設定したり、SLA層を設定したりすることもできます。
次のチュートリアルではAPIをSalesforceに統合する方法を学びます。次のチュートリアルを続けるには、ここをクリックして、SalesforceとAPI間の統合を構築する方法を学習してください。