2016-12-22 17 views
2

Я пытаюсь создать макет API с автономным wiremock. Тело ответа зависит от атрибута в теле запроса.Запрос соответствия тела в WireMock (не JSON/XML)

С JSON, я был в состоянии сделать. Ниже приведен пример отображения:

{ 
    "request":{ 
     "method":"POST", 
     "bodyPatterns":[ 
     { 
      "matchesJsonPath":"$.somekey.subkey[?(@.attribute == 'VALUE_123')]" 
     } 
     ] 
    }, 
    "response":{ 
     "status":200, 
     "bodyFileName":"res.dat", 
     "headers":{ 
     "Content-Type":"application/x-proto;charset=UTF-8" 
     } 
    } 
} 

Однако мое главное требование, чтобы иметь дело с Google Protobuf, и я пытаюсь использовать текстовый формат, вместо него, что насмешники будет использовать для имитации API для ответа. Таким образом, файл запроса находится в текстовом формате и не имеет каких-либо подтверждений JSON, таких как двойные кавычки, или запятой в конце каждой строки и т. Д.

Я обнаружил, что с использованием пути JSON проводное соединение не может соответствовать телу запроса из-за его неправильного формата. Например, запрос, как это:

{ 
animal { 
type { 
key1: "value" 
key2: value2 
} 
} 
} 

вместо

{ 
    "animal":{ 
     "type":{ 
     "key1":"value", 
     "key2":"value2" 
     } 
    } 
} 

Позволяет сказать key1 = value1 должен соответствовать и response1.json должны быть возвращены, или когда key1 = someOtherValue, то response2.json должен быть возвращен. И да, ключ является частью типа, а тип - частью животного. Как я могу добиться соответствия этого запроса?

ответ

1

Вы можете просто сделать:

{ 
    "request": { 
    "method": "POST", 
    "url": "/authorize/oauth2/token", 
    "bodyPatterns": [ { 
      "matches": ".username=(test)&." 
     } 
    ] 
    }, 
    "response": { 
    "status": 200, 
    . . . 

Также https://github.com/tomakehurst/wiremock/issues/575

+0

Да, я просто понял, что позже. Спасибо, что ответили. – xploreraj

+1

Это еще одна: '' bodyPatterns ": [{ " содержит ":" тип: КРЕДИТ " }]' – xploreraj

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

  • Нет связанных вопросов^_^