Можно ли изменить значения параметров, определенные в теле, при проверке поставщика?
Pact Wiki (https://github.com/DiUS/pact-jvm/tree/master/pact-jvm-provider-junit#modifying-the-requests-before-they-are-sent-version-323245) предоставляет возможность изменить запрос:
@TargetRequestFilter
public void exampleRequestFilter(HttpRequest request) {
request.addHeader("Authorization", "OAUTH hdsagasjhgdjashgdah...");
}
, но org.apache.http.HttpRequest
может изменять только headers
, но не body
.
Это моя соответствующая информация о пакте:
"request": {
"method": "POST",
"path": "/testApi",
"headers": {
"Content-Type": "application/json"
},
"body": {
"fileName": {
"s3ObjectKey": "1649a6d0-4aee-11e9-8646-d663bd873d93"
}
},
"matchingRules": {
"body": {
"$['fileName'].s3ObjectKey": {
"matchers": [
{
"match": "regex",
"regex": "([a-f0-9]{8}(-[a-f0-9]{4}){3}-[a-f0-9]{12})"
}
]
}
}
}
},
В приведенном выше примере я хотел бы изменить s3ObjectKey
на другой UUID.
В этом ответе (https://stackoverflow.com/a/46377050/3714922) сказано, что вы можете изменить URL (я думаю, что это относится к path
в моем договоре выше), но я не мог понять, как изменить URL или тело.