2016-12-22 4 views
2

독립형 wiremock으로 API mock을 만들려고합니다. 응답 본문은 요청 본문의 특성에 따라 다릅니다.WireMock (JSON/XML 아님)에서 Body matching을 요청하십시오.

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" 
     } 
    } 
} 

그러나 내 주요 요구 사항은 구글 protobuf 처리하는 것입니다 내가 조롱 응답하는 API를 조롱하는 데 사용하는 그것 대신에 텍스트 형식을 사용하려합니다. 따라서 요청 파일은 텍스트 형식이며 큰 따옴표 나 각 줄 끝의 쉼표와 같은 JSON 유효성 검사가 없습니다.

JSON 경로를 사용하여 wiremock이 요청 본문과 일치하지 않음을 발견했습니다. 부적절한 형식으로 인해 예를 들어,이 같은 요청은 : key1 = value1가 일치해야한다고하고 response1.json 반환해야한다, 또는 key1 = someOtherValue은 다음 response2.json 반환해야 할 때 수 있습니다

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

대신

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

의. 그리고 예, 키는 유형의 일부이며 유형은 동물의 일부입니다. 이 요청 본문을 어떻게 일치시킬 수 있습니까?

답변

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 ': [{ "contains": "type : CREDIT" } – xploreraj