<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Mocking on Wenhan blog</title>
    <link>https://wenhan.blog/tags/mocking/</link>
    <description>Recent content in Mocking on Wenhan blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ja-JP</language>
    <lastBuildDate>Tue, 17 May 2022 13:58:39 +0900</lastBuildDate><atom:link href="https://wenhan.blog/tags/mocking/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Kongの Mocking Plugingを使ってみる</title>
      <link>https://wenhan.blog/posts/20220517_using-kong-mocking-plugin/</link>
      <pubDate>Tue, 17 May 2022 13:58:39 +0900</pubDate>
      
      <guid>https://wenhan.blog/posts/20220517_using-kong-mocking-plugin/</guid>
      <description>紹介 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の紹介ページにあります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 _format_version: &amp;#34;1.1&amp;#34; _transform: true services: - host: mockbin.org name: example_service port: 80 protocol: http routes: - name: example_route paths: - /mock strip_path: true plugins: - name: mocking config: api_specification: &amp;#39;{&amp;#34;swagger&amp;#34;:&amp;#34;2.</description>
    </item>
    
  </channel>
</rss>
