我正在尝试粗略地删除api以返回文章内容。能够指定我们是否需要整篇文章,摘要或可能在该内容上的其他变体似乎很有价值。
我的直觉是将查询参数添加到像dataModel
这样的GET请求中(随意提出更好的名称)。例如,默认值可能是整篇文章,但summary
可能只是id,title和&说明,list
可能会返回ID,标题,作者和& lastModifiedDate。
但是我们使用Swagger作为文档,而Swagger似乎不支持根据查询参数(see this)返回不同的对象。所以我想知道是否有其他已建立的模式同样可以接受?
答案 0 :(得分:3)
使用Swagger的正确解决方案是创建一个包含所有数据模型的公共属性的返回类型。然后,您可以对discriminator
进行建模,并使用allOf
构造来创建正确的响应类型。
如果您在此处查看示例定义:
https://swaggerhub.com/api/swagger-tutorials/modeling-samples/1.0.0
您将了解如何使用Animal
返回类型以及Cat
和Dog
具体类型完成此操作。
答案 1 :(得分:0)
一种解决方法是使用路径变量而不是dataModel的URL查询字符串,而是使用以下路由