0

我无法弄清楚如何在协定合同的数组中表示具有结构不同对象的数组。

来自协议规范-v3

还需要定义匹配器是否应与逻辑 AND(所有匹配器必须匹配)或 OR(至少一个匹配器必须匹配)组合。AND 应该是默认值,但在某些情况下 OR 是有意义的

这可以用来“或”两种不同类型的对象吗?

这是我试图通过 pact-jvm DSL 建模的响应,该suggestions数组包含两个不同类型的对象,“1”和“3”,具有不同的模式 -

{
  "suggestions": [
    {
      "display_name": "Potato",
      "type": 1,
      "keyword": "Potato",
      "category_l1": {
        "icon_image_url": "XXXXX",
        "id": 1489,
        "name": "Potato"
      }
    },
    {
      "type": 3,
      "suggestion": {
        "display_name": "New Potato (Aloo)",
        "name": "New Potato"
      }
    }
  ]
}

我到目前为止的代码:

private DslPart getBody() {
    return new PactDslJsonBody()
            .eachLike("suggestions", 1)
                    .stringType("display_name")
                    .integerType("type")
                    .stringType("keyword")
                    .object("category_l1")
                        .stringType("icon_image_url")
                        .stringType("name")
                        .integerType("id")
                    .closeObject()
                    .closeObject()
            .closeArray();
}
4

1 回答 1

1

目前这并不容易用 Pact 建模,它假设每个项目都与提供的示例相似。有关讨论,请参阅https://github.com/pact-foundation/pact-specification/issues/38

于 2018-08-30T08:37:56.823 回答