如何在特定操作中隐藏模型属性?

时间:2016-05-11 09:16:26

标签: swagger swashbuckle

我在Swashbuckle遇到了一些问题。 我们有一个模型学生,如下所示:

public class Student
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Class { get; set; }
    public StudentStatus Status { get; set; }
}

现在,在PUT操作中,everthings工作正常,但在POST中我想从我们必须发送到API的正文中删除Id和status参数。

关于如何做到这一点的任何想法?

非常感谢能够解决这个问题的人!

1 个答案:

答案 0 :(得分:3)

您应该有一个单独的模型类,它准确地表示允许客户端为这两个操作中的每个操作发送的内容。因此,在这种情况下,两个单独的类,称为StudentPostModel和StudentPutModel,并在每个类中包含所需的字段。

除了在Swagger中让事情变得混乱之外,如果你试图在不同的情境中重复使用相同的模型,你也可以让自己过度发布攻击。