API Creation and Deployment
概念
APIとは何ですか?
APIは、ソフトウェアアプリケーションが互いに通信するための定義とプロトコルのセットです。APIの文脈では、APIはクライアントによって呼び出される操作のコレクションを表し、バックエンドサービスへのアクセスを容易にします。
なぜAPIを作成するのか?
APIを作成することは、提供者と消費者の両方にいくつかの利点を提供します:
提供者にとって:
- モジュール性:機能を再利用可能なサービスにカプセル化します。
- スケーラビリティ:スケーラブルなアプリケーションの開発を促進します。
- セキュリティ:アクセス制御と監視を実装します。
- マネタイズ:外部の開発者やパートナーにAPIを製品として提供します。
消費者にとって:
- アクセシビリティ:内部実装を理解せずにサービスにアクセスできます。
- 効率性:機能を迅速にアプリケーションに統合できます。
- イノベーション:既存のAPIを組み合わせて新しいソリューションを構築します。
APIMとKong GatewayにおけるAPIの役割
APIMでは、APIはクライアントとバックエンドサービスの間の主要なインターフェースとして機能します。APIは以下を行います:
- クライアントがサービスとどのように相互作用するかを定義します。
- 認証、レート制限、変換などのポリシーを強制します。
- 使用状況とパフォーマンスメトリクスを監視します。
各APIは特定のプロジェクトに関連付けられ、APIリクエストを処理するランタイムコンポーネントとして機能するゲートウェイを通じてデプロイされます。
Kong Gatewayは、以下の機能を提供することでAPI管理を強化します:
- 高度なルーティング:さまざまな基準に基づいてリクエストを直接します。
- セキュリティ:認証、承認、暗号化を実装します。
- 可観測性:APIの使用状況とパフォーマンスを監視します。
- 拡張性:プラグインを通じて機能を追加します。
APIMを通じてAPIを作成する利点
APIMなしでのAPI管理の課題
従来の環境では、Kongのようなゲートウェイ上でAPIを直接作成すること(CLI、REST API、または設定ファイルを介して)は、いくつかの制限が伴うことがよくあります。
- 手動設定のオーバーヘッド: 各APIは手動で定義する必要があり、人為的なエラーや不整合のリスクが増加します。
- 中央の可視性の欠如: 開発者や管理者は、すべての登録されたAPIを管理、監査、またはレビューするための単一のビューを欠いています。
- 断片的なポリシー管理: セキュリティポリシー、レート制限、リクエスト/レスポンスの変換は、APIごとに手動で適用する必要があり、バージョン管理や履歴がありません。
- 限られたコラボレーション: 共有プラットフォームがないため、開発者、テスター、マネージャー間のコラボレーションが非効率的になります。
- ライフサイクルサポートの欠如: APIのバージョン管理、デプロイ前のテスト、変更の追跡は煩雑で、カスタムスクリプトや外部ツールが必要です。
これらの問題は、APIの数が増えるにつれて、または複数のチームや環境で作業する際に、さらに深刻になります。
APIMがこれらの問題を解決する方法
APIMシステムは、Kong Gatewayの上に強力な管理レイヤーを提供し、APIを管理するための効率的でスケーラブルな方法を提供します。その利点には以下が含まれます。
- ビジュアルインターフェース: ユーザーは、使いやすいWebコンソールを通じてAPIを作成、構成、デプロイでき、CLIを使用したり設定ファイルを手動で編集する必要はありません。
- 中央集権的APIレジストリ: すべてのAPIはプロジェクトごとに管理され、明確な所有権、隔離、およびガバナンスが可能です。
- 統合ポリシー適用: APIの構成中にセキュリティ、スロットリング、ロギング、変換ポリシーを簡単に添付でき、明確なバージョン管理が行えます。
- シームレスなデプロイメント: プロジェクト特有のゲートウェイへのワンクリックデプロイメントは、エラーを減少させ、段階的な環境をサポートします。
- 組み込みのバージョニングとドキュメント: APIは同じ環境でバージョン管理、テスト、ドキュメント化が可能で、保守性が向上します。
- チームコラボレーション: ロールベースのアクセスを通じて、異なるステークホルダー(管理者、開発者、テスター)がプロジェクトの境界内で安全に貢献できます。
最終的に、APIMはKongのランタイムパワーと構造化された管理プラットフォームを組み合わせることで、APIの構築と保守の方法を変革し、運用負担を軽減し、より迅速で安全な開発ワークフローを可能にします。
APIを作成する手順
APIMでAPIを作成するには、以下の手順に従ってください。
APIMコンソールにアクセス
apim-adminの資格情報でログインします。

API管理に移動
適切なプロジェクトを選択し、API管理セクションに移動します。

新しいAPIを追加
「+ APIを追加」をクリックします。APIを定義する方法を選択します。

API設定を構成
- 名前: APIの一意の識別子。
- 説明: APIに関する任意の詳細。
- タグ: APIのタグ付け/グルーピングおよびフィルタリング/検索のために定義します。
- APIタイプ: HTTP / Websocket / Lambda(AWS LambdaコールURLを定義するため)。RESTful APIはHTTPを選択します。
- HTTPメソッド: URLパスとパラメータを指定して操作(例: GET、POST)を追加します。
- ゲートウェイ: プロジェクトのKongゲートウェイおよびゲートウェイURLに接続します。
- ゲートウェイ: APIがデプロイされるゲートウェイを選択します。ゲートウェイはプロジェクト作成時に管理者によって事前に構成されています。
- ゲートウェイURL: これはAPIが使用するドメイン(ホスト名)です。
- ゲートウェイURLベースパス: これは各ゲートウェイURLが持つコンテキストパスまたはルートパスです。
- ベースパス: ドメインの後に、各ビジネスのルーティング標準として機能するコンテキストパスまたはルートパスを定義します。(例: /business または /business/v1/apis)。
- ストリップパス: バックエンドへのルーティングにベースパス全体が含まれる場合は False に設定し、ベースパスが削除され、次のパスからルーティングが始まる場合は True に設定します。
- API URL: これはフロントエンドまたはクライアントアプリによって提供され、呼び出される API URL です。
- Swagger インポートパス: APIM は、バックエンド URL + Swagger インポートパスに基づいて、バックエンドから Swagger ドキュメントを取得、保存、管理します。
- バックエンド URL: バックエンドサービスのエンドポイントです。
- 開発者ポータルに公開: この設定により、API を開発者ポータルで表示し、製品として構成することができます。

ポリシーの適用
認証、レート制限、変換などのポリシーを実装します。

API ドキュメントの作成または更新
組み込みの Markdown エディタを使用して、API ドキュメントを作成または更新します。
また、'API 設定' ステップで 'Swagger インポートパス' が設定されている場合、'GET SWAGGER' ボタンを介してバックエンドサービスから Swagger ドキュメントを取得できます。インポートされたドキュメントは、ユーザーに公開するために '保存された Swagger' および 'デプロイされた API' である必要があります。

コンテンツをプレビューし、「API デプロイ」をクリックします。ドキュメントは「API ドキュメント」メニューに表示され、認可されたユーザーが開発者ポータルを介してアクセスできるようになります。

API 管理に API を保存
API 構成を保存し、API 管理画面で作成された API を表示します。

詳細な手順や追加オプションについては、ユーザーガイド > APIMコンソールガイド > API管理を参照してください。
APIデプロイメント
APIを正常に作成した後、作成したAPIをクリックしてAPI設定画面にアクセスできます。ここからAPIデプロイメントボタンをクリックして、APIをデプロイし、外部からアクセスできるようにします。
APIの各デプロイメントは、新しいバージョンを生成します。APIのデプロイメントを行うたびに、バージョンの説明を入力する必要があります。

APIがデプロイされた後、ユーザーはAPIデプロイメントメニューを通じてAPIのステータスとデプロイメントログを監視できます。

ユーザーはまた、各個別のAPIデプロイメントレコードをクリックして、APIおよびそのバージョンの詳細を表示できます。

このステップが完了すると、APIはゲートウェイ上でアクティブになり、その公開エンドポイントURLを介してアクセス可能になります。これで、APIをテストするための最終ステップに進むことができます。