You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Karate Mock Server仅Mock同一API的path3资源?

仅Mock指定API路径的实现方案

当然可以实现,核心思路就是精准匹配{domain}/{context}/path3的请求返回Mock结果,其余请求直接转发到真实服务,下面是几种常用工具的具体实现方式:

WireMock配置方式

  • 先给path3设置专属的Mock响应规则,精确匹配路径:
{
  "request": {
    "method": "ANY",
    "url": "/{context}/path3"
  },
  "response": {
    "status": 200,
    "jsonBody": {
      "data": "这是path3的Mock返回内容"
    }
  }
}
  • 再添加默认转发规则,让所有未被匹配的请求(也就是path1、path2)直接走真实服务:
{
  "request": {
    "method": "ANY",
    "urlPattern": ".*"
  },
  "response": {
    "proxyBaseUrl": "http://你的真实服务器地址"
  }
}

MockServer配置方式

  • 先定义path3的Mock期望:
mockServer.when(
    request()
        .withPath("/{context}/path3")
        .withMethod(HttpMethod.ANY)
).respond(
    response()
        .withStatusCode(200)
        .withBody("{\"data\": \"path3的Mock数据\"}")
);
  • 再设置全局转发规则,处理剩下的请求:
mockServer.when(
    request()
        .withMethod(HttpMethod.ANY)
).forward(
    forward()
        .to("http://你的真实服务器地址")
);

Nginx反向代理方式(无需专门Mock工具)

如果不想用Mock工具,直接用Nginx也能搞定:

server {
    listen 80;
    server_name 你的域名;

    # 拦截path3请求返回Mock内容
    location /{context}/path3 {
        default_type application/json;
        return 200 '{"data": "path3的Mock响应"}';
    }

    # 其他请求全部转发到真实服务
    location / {
        proxy_pass http://你的真实服务器地址;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

内容的提问来源于stack exchange,提问作者Doug Beach

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 05:24:57