Wiremock автономный динамический c ответный массив объектов не работает с bodyPatterns и matchJsonPath - PullRequest
0 голосов
/ 28 января 2020

Я использую Wiremock для заглушки запросов. Я создал json файл для получения ответа:

{
    "request": {
        "method": "POST",
        "urlPath": "/nested/transform",
        "bodyPatterns": [
            {
                "matchesJsonPath": "$.name.[0].first"
            },
            {
                "matchesJsonPath": "$.name.[1].first"
            }
        ]
    },
    "response": {
        "status": 200,
        "body": "{\"firstName\": \"$(name.[0].first)\", \"lastName\": \"$(name.[1].first)\"}",
        "headers": {
            "Content-Type": "application/json"
        },
        "transformers": ["body-transformer"]
    }
}

Мой запрос и ответ следующие:

Запрос

{
"name": [
      {
        "first": "Vijay"
      },
      {
        "first": "Sagar"
      }
   ]
}

Здесь я получаю очень бородатый ответ, и он не анализируется так, как я хочу.

Ответ , что не является моим ожидаемым результатом:

{
  "firstName": "[{first=Vijay}, {first=Sagar}]",
  "lastName": "[{first=Vijay}, {first=Sagar}]"
}

Ожидается результат: Я готов получить следующий ответ, основанный на вышеуказанном запросе, и указать json:

{"firstName": "Vijay","lastName": "Sagar"}

Как я могу получить ожидаемый результат, так как много пробовал, но не смог соответствовать параметрам ответа?

1 Ответ

1 голос
/ 28 января 2020

При работе с ответом JSON я предпочитаю использовать bodyFileName , поскольку в этом экранировании нет необходимости.

__ files / nested_json_template. json

{
    "firstName": "{{jsonPath request.body '$.name.[0].first'}}",
    "lastName": "{{jsonPath request.body '$.name.[1].first'}}"
}

mappings / nested_json_mapping. json

{
    "request": {
        "method": "POST",
        "urlPath": "/nested/transform",
        "bodyPatterns": [
            {
                "matchesJsonPath": "$.name.[0].first"
            },
            {
                "matchesJsonPath": "$.name.[1].first"
            }
        ]
    },
    "response": {
        "status": 200,
        "bodyFileName": "nested_json.json",
        "headers": {
            "Content-Type": "application/json"
        },
        "transformers": ["response-template"]
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...