【发布时间】:2020-06-22 02:46:58
【问题描述】:
我是一个大型 C# API 项目的一部分,由于我们的 Swagger 文档中显示了不需要的属性(我们正在使用 Swashbuckle 生成它),我们遇到了客户感到困惑的问题
最简单的形式是这样的:
我们有一个简单的类,只有一个 ID 和一个 Description 属性。
在 POST 中,我们不需要发送 ID(将自动生成)。但是在 GET 和其他动词上,需要返回/发送 ID
我们希望对所有这些端点使用完全相同的模型(为简单起见),但从 POST 请求文档中排除 ID
如果它被端点而不是动词排除会很棒 - 因为我相信我们会遇到一些不是动词特定的场景。
【问题讨论】:
-
听起来你解决了一个问题只是为了创造另一个问题。也许您应该区分每个操作的消息合同。它应该是规范的模型,而不是操作参数
-
Swashbuckle 是否有办法将属性标记为
readOnly?这个场景正是readOnly的用途。 -
@Helen Yes Swashbuckle 确实支持只读:github.com/domaindrivendev/Swashbuckle/blob/master/…
-
Zyth21,查看 IDocumentFilter,您可以使用它修改生成的 schema.json,您可以添加 @Helen 建议的
readOnly属性,或者只是为每个操作添加好的示例
标签: c# swagger swashbuckle