我想根据给定的条件验证传入的JSON。对于例如我有一个定义为,
的模型类public class Component
{
public string Id {get; set;}
[JsonProperty]
[Required]
public string Name { get; set; }
[JsonProperty]
public string Description { get; set; }
}
对于POST请求,我想确保调用者不发送Id属性值,因为它将由服务生成。但是,对于PUT请求,我想验证是否指定了Id属性值。我有多个需要类似功能的JSON。在控制器操作的上下文中强制进行模型验证的最佳方法是什么?我使用FluentValidation来验证JSON属性,但它不考虑上下文(控制器操作)。
答案 0 :(得分:0)
我看待它的方式,如果您不要求用户发送ID,那么您的模型类中就不会有ID。
拥有多个模型是完美的,一个用于PUT,一个用于POST。这很好,因为人们知道应该通过哪些属性。
所以底线:只有你在模型中需要的属性,仅此而已,这可以阻止任何歧义,并提供更高效的API。
还有一件事要考虑,PUT通常不需要ID,因为其中一个实际上在URL中。如果您在网址中没有,那么您需要在模型中使用一个。