首页 > 解决方案 > 如何处理 Pact 上的多态端点?

问题描述

我有一个应用程序,我可以在其中搜索BooksMovies。这 2 个实体具有不同的属性,因此它们的 JSON 结构不同。

我还有一个GET /favorites端点应该同时返回BooksMovies

GET /favorites

{
  "favorites": [
    {
      "type": "book",
      "title": "Foo",
      "author": "John"
    },
    { 
      "type": "movie",
      "name": "Bar",
      "producers": [
        {
          "firstName": "Mary"
        }
      ]
    }
  ]
}

我搜索了有关此案例的文档,但找不到任何内容。我如何为这个用例编写 Pact 合同?

标签: pact

解决方案


我会为此编写两个单独的测试用例,并使用提供者状态来区分这两个有效负载。

例如:

  1. 有书的时候
  2. 有电影的时候

或者类似的东西。有关这方面的相关背景,请参见 [1]。

[1] https://docs.pact.io/faq#why-is-there-no-support-for-specifying-optional-attributes


推荐阅读