当前位置: 首页 > 知识库问答 >
问题:

静态Json文件的响应模板

燕翼
2023-03-14

我正在使用java中的WireMock来存根POST请求。该请求返回一个json主体文件,该文件存储在my local中。存根如下所示:

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"

stubing工作得很好,但我的目标是使用响应模板提供动态响应。我只想使用请求url中的“subscription_proration_date”值更新json文件的“start”字段。

我更改了起始字段和存根,如下所示:

"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")));




这对我不起作用,所以任何方向都会很有帮助。我还试图删除文件中开始字段把手周围的引用,但这也不起作用。

提前谢谢你!

共有1个答案

潘凯
2023-03-14

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

.extensions(new ResponseTemplateTransformer(false));

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

 类似资料:
  • 静态文件的服务,可以有两种方式来进行,一种是中间件,另一种是直接使用内置的Actions。 使用中间件 Static 让你用一行代码可以完成一个静态服务器。 func main() { t := tango.New(tango.Static()) t.Run() } 然后,将你的文件放到 ./public 目录下,你就可以通过浏览器放问到他们。比如: http://localhos

  • 除了用于渲染和转换的内容之外,我们还可以使用静态文件。 静态文件不包含任何 YAML 头信息,譬如图片、PDF 和其他不必渲染的内容。 它们在 Liquid 中可以通过 site.static_files 访问,还包括以下元数据: 变量 描述 file.path 文件的相对路径,如:/assets/img/image.jpg file.modified_time 文件的最后修改时间,如:2016-

  • 顾名思义,静态文件就是那些不会改变的文件。在一般的应用程序中,静态文件包括 CSS 文件,JavaScript 文件以及图片。它们也可能是音频文件以及其它类似的东西。 组织你的静态文件 我们将会在我们的应用程序包里为我们的静态文件创建一个叫做 static 的目录。 myapp/ __init__.py static/ templates/ views/

  • 项目中的CSS、图片、js都是静态文件 配置静态文件 1.在settings 文件中定义静态内容 STATIC_URL = '/static/' STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static'), ] 2.在项目根目录下创建static目录,再创建当前应用名称的目录 mysite/static/myapp/ 3.在模板中可以使用

  • 问题内容: 我的代码在构造后的某个地方: 我尝试了这个: 项目结构 : 题: webpack如何复制到? 问题答案: 您用于请求JSON文件,而这只会在运行时发生。此外,webpack只处理导入的任何内容。您希望它可以处理函数的参数,但是如果webpack这样做,则函数的每个参数都将被视为模块,这会破坏该函数的其他用途。 如果您希望装入程序启动,则可以导入文件。 您还可以导入JSON并直接使用它,

  • 问题内容: 我刚刚在一些我未编写的代码中发现了一个错误,我对此感到有些惊讶: 尽管该代码在输入数据上失败了很多 _(因为它试图以17.01.2011格式查找日期并返回诸如10396/2011之类的东西,然后由于无法解析日期而崩溃,但这 确实是错误 的)这个问题的重点;)_我想知道: Pattern.compile 的要点之一不是要进行速度优化(通过预编译正则表达式)? 难道不是所有的“静态”模式都