Swagger 定义中的属性子集
Subsets of properties in a Swagger definition
我正在写一个 API,其中我有一个控制器 POST 是一个新对象,获取它并可以 PUT/PATCH 更新它。问题是这两种不同的动作在属性上存在差异。例如,当我 POST 一个新对象时,我想确保返回它的 'id' 以便它可以用于为 GET/PUT/PATCH 端点标识它。它是否通过 GET 返回并不重要(此时它只是数据的重复)但我当然不希望它通过 PUT 或 PATCH,因为 id 是不可变的。
那么,什么是最好的方式来大张旗鼓地标记它,以便我可以拥有相同定义的不同版本?我看到您可以使用 'allOf' 将定义添加到其他属性,但我想知道是否有一种说法 'not these properties in the definition'?
如果我可以做后者,我可以对整个对象进行一个定义,并简单地删除在控制器引用它时不需要返回或提交的内容。这可能吗?我说得有道理吗?
(为了让事情更有趣,我的 swagger.json 文件是由 swagger-php 基于我的控制器和实体文件中的注释生成的)
我在编写规范文件时遇到了同样的问题,不知道如何解决,但我使用的是 属性 "readOnly":true,文档中这样说这是只读的 属性,您只能通过 GET/POST 方法读取它,但不能通过 PATCH/PUT 发送它。希望这对您有所帮助
我正在写一个 API,其中我有一个控制器 POST 是一个新对象,获取它并可以 PUT/PATCH 更新它。问题是这两种不同的动作在属性上存在差异。例如,当我 POST 一个新对象时,我想确保返回它的 'id' 以便它可以用于为 GET/PUT/PATCH 端点标识它。它是否通过 GET 返回并不重要(此时它只是数据的重复)但我当然不希望它通过 PUT 或 PATCH,因为 id 是不可变的。
那么,什么是最好的方式来大张旗鼓地标记它,以便我可以拥有相同定义的不同版本?我看到您可以使用 'allOf' 将定义添加到其他属性,但我想知道是否有一种说法 'not these properties in the definition'?
如果我可以做后者,我可以对整个对象进行一个定义,并简单地删除在控制器引用它时不需要返回或提交的内容。这可能吗?我说得有道理吗?
(为了让事情更有趣,我的 swagger.json 文件是由 swagger-php 基于我的控制器和实体文件中的注释生成的)
我在编写规范文件时遇到了同样的问题,不知道如何解决,但我使用的是 属性 "readOnly":true,文档中这样说这是只读的 属性,您只能通过 GET/POST 方法读取它,但不能通过 PATCH/PUT 发送它。希望这对您有所帮助