Concepts
APIMシステムは、フルライフサイクルAPI管理をサポートするために連携して機能する主要なエンティティとコンポーネントで構成されています。このセクションでは、各概念、そのシステム内での役割、およびAPIの開発、公開、消費にどのように貢献するかを定義します。
API Manager
Definition: API Managerは、APIのライフサイクル全体にわたって定義、構成、および維持管理を行うシステムユーザーです。
System Location: すべての構成および管理タスクにAPIMコンソールを使用します。
Key Responsibilities:
- バックエンドサービスを開発および登録する
- APIエンドポイントと仕様を定義する
- APIドキュメントを作成および管理する
- ルーティングとポリシーの適用を構成する
- 指定されたゲートウェイにAPIを公開する
API User
Definition: API Userは、プラットフォーム上で公開されたAPIを消費する開発者またはアプリケーションチームです。
System Location: 開発者ポータルを介してシステムと対話します。
Key Responsibilities:
- APIドキュメントにアクセスする
- APIキーとエンドポイントにアクセスする
- 新しいユニークなAPIエンドポイントをリクエストする
- アプリケーションにAPIを統合する
- アプリケーションチームのメンバーと役割を管理する
Backend Service
Definition: バックエンドサービスは、APIが公開するコアビジネスロジックまたはデータ処理ユニットです。
System Location: APIMシステムの外部に存在しますが、登録され、そこを通じてアクセスされます。
Function:
- APIリクエストを受信し、処理する
- ゲートウェイを介してクライアントに構造化データまたはサービスの結果を返す
Frontend Application
Definition: エンドユーザーにビジネス機能を提供するためにAPIを利用する消費者向けのWebまたはモバイルアプリケーションです。
System Location: APIユーザーによって外部で構築および運営されます。
Function:
- APIゲートウェイに構造化リクエストを送信する
- エンドユーザーにAPIレスポンスを受信し、表示する
- APIベースのインタラクションのためのクライアントインターフェースとして機能します
API Gateway
Definition: API Gatewayは、ポリシーの強制、トラフィックのルーティング、およびAPIコールの処理を担当するコアランタイムコンポーネントです。
System Location: フロントエンドアプリケーションとバックエンドサービスの間に位置しています。
Key Functions:
- 受信APIリクエストの検証と認証
- リクエストおよびレスポンスポリシーの適用(例:スロットリング、変換)
- 適切なバックエンドサービスへのリクエストのルーティング
- 複数のプロジェクト間でのレプリケーション、スケーラビリティ、および分離のサポート
APIM Console (API Management Console)
Definition: APIM Consoleは、API、ポリシー、ゲートウェイ、およびプロジェクトを管理するための主要な管理インターフェースです。
Target Users: APIマネージャー、プラットフォーム管理者
Key Functions:
- APIの定義、登録、および公開
- ポリシーとアクセスルールの構成
- APIゲートウェイの作成と管理
- APIの使用状況、パフォーマンス、およびシステムログの監視
Developer Portal
Definition: Developer Portalは、APIユーザーが公開されたAPIを発見、探索、およびアクセスするためのセルフサービスプラットフォームです。
Target Users: 内部チーム、パートナー開発者、外部消費者
Key Functions:
- 利用可能なAPIとドキュメントを閲覧
- APIアクセスをリクエストし、資格情報を管理
- 個人の使用状況と承認状況を追跡
- Open APIコラボレーションのためのインターフェースとして機能
API Test Portal
Definition: リクエスト/レスポンスシミュレーションを使用してAPIをリアルタイムでテストするための専用ツールです。
Target Users: APIマネージャーとAPIユーザーの両方
Key Functions:
- パラメータとヘッダーを含むサンプルリクエストを送信
- APIの機能的正確性を検証
- APIキーやトークンなどの認証方法を使用
- 本番使用前にAPIの動作をデバッグ
テナント管理コンソール (ユーザー管理)
Definition: テナントマネージャーコンソールは、プラットフォームレベルの管理者向けにユーザーおよびプロジェクト管理機能を提供します。
Target Users: システムレベルの管理者
Key Functions:
- ユーザーとプロジェクトを作成および管理する
- ユーザーに役割と権限を割り当てる
- ユーザーをプロジェクトに割り当てる
API
Definition: API (アプリケーションプログラミングインターフェース) は、APIMプラットフォームを介して消費者に公開される主要なサービスユニットです。
System Location: APIMコンソールに登録され、公開され、ゲートウェイを介してアクセスされます
Attributes:
- Swagger/OpenAPIを使用して定義される
- バックエンドサービスに接続される
- ライフサイクル管理およびポリシーの対象となる
- フロントエンドアプリまたは外部システムによって消費される
APIドキュメント
Definition: APIを消費する方法を説明する構造化された技術文書です。
System Location: APIMコンソールで作成され、開発者ポータルに公開されます
Contents Include:
- エンドポイントの説明とメソッド
- 入力パラメータと出力構造
- 認証要件と使用例
APIポリシー
Definition: APIポリシーは、APIゲートウェイによってAPIリクエストとレスポンスが処理される方法を規定する一連のルールです。これらのポリシーは、アクセス、セキュリティ、データ変換、およびトラフィックの動作を制御します。
Policy Placement: ポリシーは、APIフローの2つの異なる段階で適用されます:
- Inbound Policies (Request Policies): リクエストがバックエンドサービスに到達する前に適用されます。目的:
- 呼び出し元を認証する (例: APIキー、トークン、OAuth)
- ヘッダー、ペイロード、またはパラメータ形式の検証など、リクエストを変換または前処理する。
- レート制限とクォータの強制を適用する
- ルーティングの決定またはヘッダーの強化を行う
- Outbound Policies (Response Policies): バックエンドからの応答が返された後、APIユーザーに到達する前に適用されます。目的:
- 応答本文の機密データをマスクする
- 応答形式を変換する(例:応答データ内の特定のフィールド値をマスクする)
- 応答ヘッダーを追加または変更する
- 応答内容またはステータスコードをログに記録する
- APIMコンソールで設定される
- APIゲートウェイによって動的に強制される
APIユーザーがリクエストを送信すると、ゲートウェイは最初に認証と有効性を確認するためにインバウンドポリシーを適用します。リクエストがバックエンドにルーティングされ、応答が生成されると、アウトバウンドポリシーが適用され、応答がセキュリティ、形式、またはログ要件に準拠していることを確認してから、フロントエンドアプリケーションに返されます。
マルチゲートウェイ管理
Definition: 複数のゲートウェイを定義および運用する能力であり、各プロジェクトは単一のゲートウェイに制限されます。
Purpose and Benefits:
- プロジェクト間のトラフィックの分離
- リソース特有のデプロイメントによるスケーラビリティ
- ローリングアップデートとレプリケーション制御のサポート
- チーム、部門、またはテナントごとの柔軟なデプロイメント
APIライフサイクル
Definition: APIの作成、デプロイメント、および運用のエンドツーエンドプロセスです。
Lifecycle Stages:
- バックエンドサービスの開発
- APIの定義とドキュメント作成
- ゲートウェイの作成とポリシー設定
- APIの公開
- テストとフロントエンド統合
- 実行時リクエスト/応答の実行
- 監視とバージョン管理
APIリクエストと応答のフロー
Definition: APIコールが消費者からプロバイダーへ、そして再び戻る実際の実行時シーケンスです。
Flow Steps:
- フロントエンドアプリケーションがAPIゲートウェイにリクエストを送信する
- ゲートウェイがリクエストポリシーを適用する
- リクエストがバックエンドサービスにルーティングされる
- レスポンスが生成され、返されます
- ゲートウェイがレスポンスポリシーを適用します
- 最終レスポンスがフロントエンドアプリに送信されます