javascriptstubby4j

Stubby: stub PUT requests for same URLS with distinct body


I'd like to match distinct bodies for the same PUT URL, but stubby4j always matches the first case, no matter what's the content of the body.

Example:

- 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

In this case, no matter what's the value of the parameter "type" in my request, it always matches with the first stub.


Solution

  • Apologies for the late response.

    In the recent & current versions of stubby4j (i.e.: 7.x.x) it is possible to match distinct bodies for the same PUT/GET/POST/PATCH/etc URLs.

    For example, the following is a valid YAML config that would work (I simplified a tad the YAML config provided by the OP for the sake of example):

    -  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
    

    To note:

    Please refer to the stubby4j user manual for more information about the YAML config for request & response: https://stubby4j.com/docs/http_endpoint_configuration_howto.html