Я использую WireMock в Java для заглушки для запроса POST. Запрос возвращает файл тела json, который хранится в моей локальной сети. Заглушка выглядит так:
wireMockServer.stubFor(get(urlMatching("/v1/invoices/.*"))
.willReturn(aResponse()
.withStatus(200)
.withBodyFile("testgetupgradeprorationamount/stubThree")));
Часть файла тела ответа "stubThree" выглядит следующим образом:
"id": "ii_1EmM93Htp4Kkdrs8",
"object": "line_item",
"amount": 9600,
"currency": "usd",
"description": "Remaining time on 3 × Business after 17 Jun 2019",
"discountable": false,
"invoice_item": "ii_1EmM93HtpLyYzpmOC4Kkdrs8",
"livemode": false,
"metadata": {
},
"period": {
"end": 1563374954,
"start": 1560782957
}
URL-адрес запроса имеет несколько параметров и выглядит следующим образом:
/v1/invoices/?subscription_items[0][quantity]=3&subscription_proration_date=1560892137&customer=cus_FHNIIE4b8LH7qL"
Заглушка работает нормально, но моя цель - дать динамический ответ с использованием шаблонов ответа. Я хочу обновить поле «start» только файла json, используя значение «subscription_proration_date» из URL-адреса запроса.
Я изменил начальное поле и заглушку следующим образом:
"period": {
"end": 1566053354,
"start": "{{request.query.subscription_proration_date}}"
},
wireMockServer.stubFor(get(urlMatching("/v1/invoices/.*"))
.willReturn(aResponse()
.withStatus(200)
.withBodyFile("testgetupgradeprorationamount/stubThree")
.withTransformers("response-template")));
Это не работает для меня, поэтому любые указания были бы очень полезны. Я также попытался удалить кавычки вокруг поля начала поля в файле, но это тоже не сработало.
Заранее спасибо!