我正在编写一个API,我有一个控制器,用于POST一个新对象,获取它并可以对其进行PUT / PATCH更新。问题在于两种不同动作之间的属性存在差异。例如,当我POST一个新对象时,我想确保返回它的'id',以便它可以用于为GET / PUT / PATCH端点识别它。如果它通过GET返回并不重要(它只是在那时重复数据)但我当然不希望它传递给PUT或PATCH,因为id是不可变的。
那么最好的方式是什么才能在招摇中标记这一点,以便我可以拥有相同定义的不同版本?我已经看到你可以使用'allOf'将定义添加到其他属性,但我想知道是否有一种方法可以说“定义中不是这些属性”?
如果我可以做后者,我可以将对象的一个定义作为一个整体,并简单地删除在Controller中引用它时不需要返回或提交的内容。这可能吗?我有道理吗?
(只是为了让事情变得更有趣,我的swagger.json文件是由swagger-php根据我的控制器和实体文件中的Annotations生成的)
答案 0 :(得分:1)
我在编写spec文件时面临同样的问题,并且不知道如何解决它,但我使用的是属性" readOnly":true,这样文档说明了这是一个readonly属性,你只能通过GET / POST方法读取它,但你不能通过PATCH / PUT发送它...希望这有帮助