介绍
Mocking 插件为开发中的 API 提供模拟端点,便于测试。它基于 Open API(OAS)规范,对发送到 API 的请求返回模拟响应。为了测试的灵活性,Mocking 插件可以很方便地启用或禁用。 https://docs.konghq.com/hub/kong-inc/mocking/
注意:该插件只能返回 200、201 和 204 响应。它是为测试正常流程而设计,无法返回 200 以外的状态码。
本文将以 Docker 容器方式搭建 db-less 的 Kong Gateway 环境,并在其上试用 Mocking 插件。
部署 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 插件介绍页面 所述,配置本身非常简单,关键参数有 api_specification
和 api_specification_filename
:
api_specification_filename
:指定保存规范内容的文件名。api_specification
:直接将规范内容作为参数写入。
如果用 api_specification_filename
,需要提前将文件上传到 Dev Portal,并且只写文件名,不带路径。示例见这里。但本次我们用 db-less 环境,无法使用 Dev Portal,因此不能用 api_specification_filename
。
所以我们直接在 api_specification
里写入 API 规范的示例内容,然后启动容器。规范示例可参考 Mocking 插件介绍页面。
|
|
构建 db-less 的 Kong Gateway 环境
设置好许可证环境变量后,使用如下命令启动容器。关键点在于 KONG_DATABASE=off
以及 KONG_DECLARATIVE_CONFIG
的配置文件路径。配置文件通过 -v
从本地挂载。
|
|
验证
只要访问 Mocking 插件规范中定义的路径,返回的就是规范中定义的内容,而不是后端服务的响应。这样就能确认 Mocking 插件已生效。
|
|