Apigee Edge の API サンプルには、Apigee Edge API Services の機能を紹介する API プロキシ、ポリシー、コード、ツールのサンプルが含まれています。
サンプルの使用方法については、サンプル API プロキシの使用をご覧ください。
使いながら学習する
Apigee Edge を使いながら基本的な知識やスキルを習得する方法はないものでしょうか。GitHub の「learn-edge」サンプル ライブラリを使用すると、サンプル プロキシのデプロイ、呼び出し、トレースの方法を学習できます。最初は簡単なプロキシから始めて、API キーの検証、割り当て、レスポンスのキャッシュ保存、エラー処理などを行う方法を説明していきます。
このリポジトリのクローンを作成してから環境を構築するまで、わずか数分しかかかりません。環境を構築したらサンプルを試してみましょう。どれも 1 分程度で終了します。それぞれのサンプルで新しいプロキシのリビジョンを作成していくので、環境が多くのサンプルでいっぱいになることはありません。管理 UI でリビジョンを切り替え、異なるリビジョンを再度デプロイし、プロキシのコードを確認していきます。各サンプルには readme も付いているため、サンプルの機能や設定方法を簡単に確認できます。
では、試してみましょう。https://github.com/apigee/api-platform-samples/tree/master/learn-edge
doc クックブックのサンプル
API プロキシ クックブック用のサンプルが用意されています。
名前 | 説明 | ポリシータイプ | リソース |
---|---|---|---|
javascript-cookbook | 簡単な JavaScript スニペットを紹介します。このスニペッドは、変数から HTTP ヘッダーを追加し、JSON から XML に変換を行い、XML 形式の天気レポートを作成します。また、モバイル ユーザー向けにコンテンツのトリミングを行います。 | minimize.js setHeaders.js |
|
javascript-mashup-cookbook | 公開 API を呼び出して結果を統合し、クライアント アプリへの詳細なレスポンスを生成する完全な JavaScript アプリケーション(注: この API プロキシは、policy-mashup と同じ機能を実装します。同じ問題を異なる手法で解決する方法も紹介します)。 | JavaScript | MashItUp.js |
java-hello | hello world を表示するシンプルな Java Callout。 | JavaCallout | JavaHello.java |
java-cookbook | レスポンスのコンテンツとヘッダーを大文字に変換します。 | JavaCallout |
ResponseUppercase.java |
java-properties | Java コールアウトでプロパティを使用する方法を紹介します。 | JavaCallout | JavaProperties.java |
java-error | Java Callout コードで使用できるエラー処理のパターンを説明します。 | JavaCallout | JavaError.java |
policy-mashup-cookbook | 2 つの公開 API を呼び出して結果を統合し、クライアント アプリへの詳細なレスポンスを生成する完全なアプリケーション(注: この API プロキシは、javascript-mashup と同じ機能を実装します。同じ問題を異なる手法で解決する方法も紹介します)。 | AssignMessage ServiceCallout ExtractVariables Javascript XMLToJSON |
GenerateResponse.js |
API プロキシのサンプル
以下の API プロキシは GitHub にあります。この readme ページには、サンプルに関する詳しい説明が掲載されています。サンプルの中で特定のポリシーについて詳しく知りたい場合は、以下の「ポリシータイプ」列でカテゴリを探して、「名前」列のサンプル名をクリックしてください。ポリシーに関連する docs のリファレンス ページに移動します。
リファレンスとツール
上記の表の doc クックブック サンプルとサンプル プロキシに加えて、Edge GitHub サンプルには次のリソースも含まれています。
名前 | 説明 | ポリシータイプ | リソース |
---|---|---|---|
regex-protection | regular expression threat protection ポリシーは、バックエンドの API とマイクロサービスを SQL インジェクション攻撃から保護します。 | なし | |
oauth-validate-key-secret | OAuth パスワード権限付与タイプのフローを実装しています。外部の ID プロバイダを呼び出してユーザーの認証情報を検証する前に、Edge でアプリケーションのクライアント キーとシークレットの両方を検証する必要があります。 | OAuthV2、その他 | なし |
condition-pattern-matching | このプロキシを使用すると、API プロキシフローで条件文のテストを簡単に行えます。 | AssignMessage | なし |
access-entity | Apigee Edge データストアからエンティティのプロファイルを取得する方法を説明します。 | AssignMessage AccessEntity ExtractVariables |
なし |
apikey | 簡単な API キー検証を実装します。 | VerifyAPIKey AssignMessage Quota |
なし |
async-callout | JavaScript httpClient を使用して、簡単な非同期コールアウトを説明します。 | JavaScript | assemble_response.js callout.js |
base64encoder | API プロキシの JavaScript リソースから JavaScript のインクルードを呼び出す方法を説明します。 | AssignMessage Javascript |
core-min.js enc-utf16-min.js enc-base64-min.js encodeAuthHeader.js |
conditional-policy | 簡単な条件付きポリシーを実装します。リクエストに HTTP ヘッダー responsetime:true が含まれている場合、ポリシーは Python スクリプトを実行し、一連のパフォーマンス指標を HTTP ヘッダーとしてレスポンス メッセージに追加します。 | スクリプト(Python) | timer.py |
dynamic-endpoint | 少し複雑なシナリオで条件付きのルーティングを実装しています。ここでは、2 つの URL を定義し、1 つのデフォルトのルートに設定しています。 | なし | なし |
jira-release-notes | これは、Apigee doc チームが Jira からリリースノートを生成するために使用する API プロキシです。 | JSONToXML XSL |
releasenotes_api.xsl |
kerberos-credential-mediation | このサンプルでは、Apigee Edge で Kerberos Credential Mediation を実行します。 | JavaCallout | Java JAR ファイル |
oauth-advanced | 完全な認証コード権限付与タイプのフローです。Apigee Edge を認可サーバーとして使用しています。 |
GenerateAccessToken その他... |
サンプルコードを参照 |
oauth-client-credentials | クライアント認証情報の権限付与タイプに構成されたフル機能の OAuth 2.0 トークン エンドポイントです。 | GenerateAccessToken | なし |
oauth-login-app | 非推奨。oauth-advanced サンプルをご覧ください。 | ||
oauth-validate-key-secret | ID プロバイダを呼び出して、パスワード権限付与タイプフローでユーザーの認証情報を検証する前に、クライアントのキーとシークレットを検証する方法を解説しています。 | OAuthV2 AssignMessage ExtractVariables ServiceCallout RaiseFault |
なし |
oauth-verify-accesstoken | OAuth 2.0 アクセス トークンを検証して割り当てを確認するように構成された API プロキシです。 | VerifyAccessToken Quota |
なし |
oauth10a-3legged | OAuth 1.0a の three-legged 構成を説明しています。 | GenerateAceessToken GenerateRequestToken ServiceCallout VerifyAccessToken |
なし |
outbound-oauth | Microsoft Azure translator API を使用して、ツイートを翻訳します。そのために、まず送信呼び出しを行って OAuth アクセス トークンを取得し、取得したトークンを API サービスのキャッシング ポリシーを使用してキャッシュに保存します。以降は、送信呼び出しを行うたびにキャッシュに保存されているトークンを再利用します。このサンプルには、API プロキシの呼び出しに使用するデモ用ブラウザも含まれています。 | AssignMessage LookupCache PopulateCache Javascript |
api-config.js api-token-get.js translate-query.js translate-results.js |
pagination | クライアントから提供された limit と offset パラメータに基づいて XML レスポンス メッセージをページ分割します。 | AssignMessage ExtractVariables ResponseCache VerifyApiKey XSL |
paginate.xslt |
response-cache | Edge で 10 分間天気予報をキャッシュに保存する方法を説明します。 | ResponseCache AssignMessage |
なし |
simple-python | レスポンスに Python スクリプトを追加して、 ヘッダー値を追加する簡単なシナリオを説明します。 |
スクリプト(Python) | setHeader.py |
soap | クエリ パラメータ ?wsdl を含むリクエストのレスポンスで WSDL ファイルを書き換える XSL 変換を説明します。 | AssignMessage ExtractVariables Script(Python) XSL |
calculateaddress.py fixwsdl.xsl |
ストリーミング | HTTP ストリーミング構成を説明します。 | なし | なし |
target-reroute | JavaScript を使用して、リクエスト メッセージのコンテンツに応じてターゲット URL を動的に選択する方法を説明します。 | ExtractVariables Javascript |
rewriteTargetUrl.js |
twitter-mobile-timeline | JavaScript を使用して、ツイートから不要なパラメータを削除し、リソースに制約があるモバイル デバイスでも利用できる Twitter タイムラインを作成する方法を説明します。 | AssignMessage Javascript |
MobileTimeline.js |
twitter-oembed | タイムライン レスポンス(statuses/user_timeline.json からのレスポンスなど)を oEmbed レスポンスに変換して、リッチな HTML コンテキストでタイムライン データを表示する方法を説明します。 | AssignMessage JavaScript |
search-oembed.js |
variables | 転送、JSON、XML メッセージのコンテンツに基づいて変数を抽出および設定する方法について説明します。 | AssignMessage ExtractVariables XMLToJSON |
minimize.js |
xmltojson | レスポンス データを XML から JSON に変換します。 | XMLToJSON JSONToXML |
なし |
|
API プロキシ、API プロダクト、デベロッパー、アプリのプロファイルを構成するときに参照として使用できる XML スキーマ ファイル。 |
||
|
デプロイ ツール deploy.py があります。このツールを使用すると、API プロキシを Apigee Edge の組織にインポートして、指定した環境にデプロイできます。 |
||
|
組織のスナップショット ツールを使用して、デベロッパー、API プロダクト、仮想ホスト、Key-Value マップなどの組織の設定を取得します。組織の詳細情報をバックアップする場合や、組織の設定を検出する場合にも使用できます。 |
Apigee-127
Node.js と Swagger を使用する API プロキシのコーディングに Apigee-127 を使用できます。a127 のサンプルは GitHub(https://github.com/apigee-127/a127-samples)にあります。
エクスペリエンスを共有する
エクスペリエンスを Apigee デベロッパー フォーラムで共有しましょう。