簡體   English   中英

spring cloud contract dsl 指定路徑參數

[英]spring cloud contract dsl specify path parameter

我正在嘗試為 GET 請求創建合同,並且我想使用路徑參數,該參數也可以在響應中重用。 這是可能嗎? 我只能找到 POST、查詢參數和正文的示例。 因此,如果我想定義一個請求實體的合同,即 /books/12345-6688,我想在響應中重用指定的 ID。

我如何為這樣的事情創建合同?

自 Spring Cloud Contract 1.2.0-RC1起可能(已在此問題中修復)。

response {
    status 200      
    body(
        path: fromRequest().path(),
        pathIndex: fromRequest().path(1)  // <-- here   
    )
}

請參閱文檔

不,這是不可能的,因為https://github.com/tomakehurst/wiremock/issues/383 從理論上講,您可以創建自己的轉換器 + 覆蓋 Spring Cloud Contract 中生成存根的方式。 這樣 WireMock 存根將包含對新變壓器的引用(如 WireMock 文檔中所示 - http://wiremock.org/docs/extending-wiremock/ )。 但聽起來好像有很多工作似乎並不是那么必要。 為什么你需要這樣做? 在消費者方面,您想測試集成,對嗎? 因此,只需在合同中硬編碼一些值,而不是引用它們,然后檢查是否可以解析這些值。

更新:如果您只需要參數化請求 URL 但不想在響應中引用它,您可以使用像這里這樣的正則表達式 - https://cloud.spring.io/spring-cloud-contract/single/spring- cloud-contract.html#_regular_expressions

UPDATE2:就像@lafuste 提到的,從 RC1 開始,你可以引用一個具體的路徑元素

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM