gpt4 book ai didi

静态 Json 文件的响应模板

转载 作者:行者123 更新时间:2023-12-03 22:07:06 28 4
gpt4 key购买 nike

我在java中使用WireMock来 stub POST请求。该请求返回一个存储在我本地的 json 正文文件。 stub 看起来像这样:

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"

stub 工作正常,但我的目标是使用响应模板提供动态响应。我只想使用请求 url 中的“subscription_proration_date”值更新 json 文件的“开始”字段。

我像这样更改了开始字段和 stub :
"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")));





这对我不起作用,所以任何指示都会非常有帮助。我还尝试删除文件中开始字段 Handlebars 周围的引号,但这也不起作用。

先感谢您!

最佳答案

所以我能够解决我的问题。问题是我没有为我的 WireMockServer 实例添加正确的扩展:

.extensions(new ResponseTemplateTransformer(false));


如果 bool 值为 false,您还需要像我上面所做的那样在每个 stub 的基础上指定转换器。否则,扩展将应用于所有 stub 。

关于静态 Json 文件的响应模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56671702/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com