Stubby:对具有不同主体的相同 URL 的 PUT 请求存根

Stubby: stub PUT requests for same URLS with distinct body

我想为同一个 PUT 匹配不同的正文 URL,但是 stubby4j 总是匹配第一种情况,无论正文的内容是什么。

示例:

- request:
    url: /individuals/.*/address$
    method: PUT
    body: >
      {
        "type": "MOBILE",
        (other input fields)  
      }
  response:
    status: 400
    body: >
      {
        "type": "BAD_REQUEST",
        "message": "Validation error on request."
      }
- request:
    url: /individuals/.*/address$
    method: PUT
    body: >
      {
        "type": "HOME",
        (other input fields)
      }
  response:
    status: 200

在这种情况下,无论我请求中的参数 "type" 的值是多少,它总是与第一个存根匹配。

尝试使用 headers 将请求 body 更改为 json 数据。

- request:
    url: /individuals/.*/address$
    method: PUT
    headers:
       content-type: application/json
    json: '{"type": "MOBILE"}'
  response: ...

- request:
    url: /individuals/.*/address$
    method: PUT
    headers:
       content-type: application/json
    json: '{"type": "HOME"}'
  response: ...

抱歉回复晚了。

在最近和当前版本的 stubby4j(即:7.x.x)中,可以为相同的 PUT/GET/POST/ 匹配不同的主体PATCH/等网址。

例如,以下是有效的 YAML 配置(为了示例,我稍微简化了 OP 提供的 YAML 配置):

-  request:
      url: /individuals/.*/address$
      method: PUT
      post: >
        {"type": "MOBILE"}

   response:
      status: 400
      body: >
        {"type": "BAD_REQUEST"}


-  request:
      url: /individuals/.*/address$
      method: PUT
      post: >
        {"type": "HOME"}

   response:
      body: OK
      status: 200

注意事项:

  • request 没有得到 body 密钥,使用 post 密钥代替 POST/PUT/PATCH 存根您的有效载荷(或者 file 如果您的有效载荷太大了)
  • body 键只能在 response 中使用,不能在 request
  • 中使用
  • json 密钥无效且不受 stubby4j
  • 支持

有关 requestresponse 的 YAML 配置的更多信息,请参阅 stubby4j 用户手册: https://stubby4j.com/docs/http_endpoint_configuration_howto.html