2016-03-29 6 views
0

Я пытаюсь настроить сопоставления Wiremock, чтобы вернуть ответ JSON со значением из запроса.Подстановка переменной Wiremock в ответе JSON

Запрос просто

{ "clientTag": "123" } 

И отображение для него является:

{ 
    "priority": 4, 
    "request": { 
    "method": "POST", 
    "urlPattern": "/test" 
    }, 
    "response": { 
    "status": 200, 
    "body": "{ \"loginId\": \"${loginId}\" }", 
    "headers": { 
     "Content-Type": "application/json" 
    } 
    }, 
    "captures" : [ { 
      "source" : "BODY", 
      "target" : "loginId", 
      "pattern" : "$..clientTag", 
      "captureGroup" : 1 
    } ] 
} 

я получаю ответ:

{ "loginId": "" } 

в то время как ожидаемый один:

{ "loginId": "123" } 

Если я переключусь на запросы XML, все будет хорошо работать с шаблоном <clientTag>(.*?)</clientTag>, но я хотел бы придерживаться JSON.

К сожалению, документация Wiremock вряд ли является вопросом. Есть идеи?

ОБНОВЛЕНИЕ: Если кто-то читает это позже, вы бы лучше всего использовали преобразования в коде, которые доступны в более поздних версиях Wiremock.

ответ

1

Если вы не добавили расширение, о котором вы не упоминали, это не сработает - в JSON API нет элемента «захватов», и нет способа (без расширений) выполнять подстановку переменных в ответах.

+0

Привет, Том, во-первых, спасибо за отличный макет! Вы правы, я проверил и узнал, что у нас действительно есть расширения для захвата, я буду копаться от этого. Есть ли полный API JSON для подключения к сети? Я изо всех сил пытаюсь найти много информации об этом через Интернет. –

+0

Существует не один документ, охватывающий весь JSON API, но все это распространяется на wiremock.org. Есть ли что-то конкретное, что вы ищете? – Tom

Смежные вопросы