Как установить значения тела ответа, используя данные из запроса, используя шаблоны ответов в Wiremock? - PullRequest
0 голосов
/ 28 июня 2018

У меня есть это JSON-определение запроса-ответа. Тело запроса является текстовым / простым.

{
  "request": {
    "method": "POST",
    "url": "/users",
    "bodyPatterns": [
      {
        "equalTo": "Name Bob Age 30"
      }
    ]

  },
  "response": {
    "status": 200,
    "body": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><UsersResponse><Name>Bob</Name><Age>30</Age></UsersResponse>",
    "transformers": ["response-template"],
    "headers": {
      "Content-Type": "text/xml"
    }
  }
}

Я хочу, чтобы 'Bob' и '30' были не жестко закодированы, а были бы как переменная для запроса и ответа. Так что если в запросе 'Mark' '20' прибудет, я хочу вернуть

"body": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><UsersResponse><Name>Mark</Name><Age>20</Age></UsersResponse>"

Как этого добиться?

1 Ответ

0 голосов
/ 29 июня 2018

WireMock и WireMock.Net поддерживают шаблонов ответа :

Документация:

Однако это ограничивается простыми шаблонами (подробности см. В документации), невозможно определить пользовательский код или сложным образом извлечь данные с помощью интерфейса отображения JSON.

Для WireMock.Net вы можете самостоятельно написать это в C #, другой пример может выглядеть так:

server.Given(Request.Create().WithPath("/exampleIko"))
    .RespondWith(Response.Create().WithCallback(req =>
    {
        return new ResponseMessage
        {
            Body = "<xml>" + req.Body.Substring(10) +"</xml>"
        };
    }));
...