紹介
Mockingプラグインは、開発中のAPIに対するテストを行うために、模擬のエンドポイントを提供するものです。Open API(OAS)仕様に基づいて、APIに送信されたリクエストに模擬応答をレスポンスします。また、テストの柔軟性のため、Mockingプラグインを簡単に有効または無効にすることができます。 https://docs.konghq.com/hub/kong-inc/mocking/
注意点として、このプラグインは、200、201と204の応答をレスポンスすることができます。正常動作をテストするために開発されたもので、200番台以外のコードをを返すことができません。
今回は、db-less環境のKong-gatewayをDocker containerで構築し、その上に Mocking Pluginを試してみます。
Kong-gatewayをデプロイする前に
db-lessの環境のため、Admin APIやGUIで設定を変更することはできません(保存先はないから)。そのため、起動時にDeclarative Configurationという名の設定ファイルを事前にコンテナーに食わせる必要があります。
https://docs.konghq.com/gateway/2.8.x/reference/db-less-and-declarative-config/#main
今回の目標は Mockingを試したいので、 Mockingの設定内容も事前にこのファイルに記述していきます。Mocking Pluginの紹介ページで書いたように、設定自体はとてもシンプルです。ただ、肝心なのはapi_specificationとapi_specification_filenameの二つです。この二つのパラメータは、模擬のエンドポイントのスペック内容を定義するために使われますが、違いは以下の通りです。
api_specification_filename
: スペック内容が保存されたファイル名を設定する。api_specification
: スペック内容をそのままパラメータに設定する。
api_specification_filename
は、設定するファイルを事前にDev Portalにアップロードしてから、パスなしで設定してください。設定の例はここに書いています。しかし、今回はdb-lessの環境を構築するため、そもそもdev protalが利用できないし、api_specification_filenameを利用できません。
そのため、api_specification
にサンプルのAPIのスペック内容をそのまま設定し、コンテナーを立ち上げます。スペックのサンプルは、Mocking Pluginの紹介ページにあります。
|
|
db-lessのKong-gateway環境を構築
ライセンスを環境変数に設定した後、以下のコマンドでコンテナーを立ち上げます。KONG_DATABASE
がoff
になっているところと、KONG_DECLARATIVE_CONFIG
に設定ファイルのパスが書かれているところが重要です。設定ファイルは、-v
でローカルからMountされています。
|
|
検証
Mocking Pluginのスペックに書いたパスを指定すれば、backendのサービスではなく、このスペックに定義した内容がResponseされていました。これでMocking Pluginが有効に働いていることが検証できました。
|
|