0

我正在编写一个 API,其中有一个控制器,它发布一个新对象,将其返回并可以对其进行 PUT/PATCH 更新。问题是这两个不同动作之间的属性存在差异。例如,当我发布一个新对象时,我想确保返回它的“id”,以便它可以用于为 GET/PUT/PATCH 端点识别它。它是否通过 GET 返回并不重要(此时它只是数据的重复),但我当然不希望它通过 PUT 或 PATCH 传递,因为 id 是不可变的。

那么,以大摇大摆的方式标记它的最佳方法是什么,以便我可以拥有相同定义的不同版本?我已经看到您可以使用“allOf”将定义添加到其他属性,但我想知道是否有办法说“定义中没有这些属性”?

如果我能做到后者,我可以对整个对象进行一个定义,并简单地剔除在控制器处引用它时不需要返回或提交的东西。这可能吗?我说得有道理吗?

(只是为了让事情更有趣,我的 swagger.json 文件是由 swagger-php 基于我的控制器和实体文件中的注释生成的)

4

1 回答 1

2

我在编写我们的规范文件时遇到了同样的问题,不知道如何解决它,但我使用的是属性“readOnly”:true,这样文档说这是一个只读属性,你只能阅读它通过 GET/POST 方法,但您不能通过 PATCH/PUT 发送它。希望这会有所帮助

于 2015-12-17T14:36:13.063 回答