首页 / C# / c# – POST和PUT的不同型号要求
c# – POST和PUT的不同型号要求
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – POST和PUT的不同型号要求,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1342字,纯文字阅读大概需要2分钟。
内容图文
![c# – POST和PUT的不同型号要求](/upload/InfoBanner/zyjiaocheng/822/b3e501c183e7445da1917215cf6fc098.jpg)
假设我有一个控制器CatController,其中包含GET,POST和PUT操作.它们都使用相同的Cat资源,如下所示:
public class CatDto {
public int Id { get; set; }
[Required]
public string Name { get; set; }
[Required]
public bool IsFriendly {get; set; }
}
但是,只有在创建新cat(POST)时才需要Name和IsFriendly属性,但在更新它(PUT)时可选,以允许仅更新单个属性.
到目前为止我处理这个问题的方法只是有两个类,一个CreateCat和UpdateCat,它们具有相同的属性,但具有不同的数据注释.但是我不想要维护两个几乎相同的类.
我当然可以在每个操作中手动验证模型,但数据注释对于诸如全局模型验证器和自动生成Swagger架构之类的东西非常有用.
我也使用Swagger模式自动生成SDK(使用ApiMatic),这导致生成两个重复的类(CreateCat和UpdateCat),实际上应该只是一个资源(Cat).
有没有另一种方法来实现我只想用一个班级做的事情?
解决方法:
我更愿意保持单独的模型.
您可以使用具有所有常见属性的基本抽象(或不具有)模型,尽管这不是必需的,只需添加第三个类.有必要吗?我会说不.
POST和PUT之间存在细微差别.如果您已在PUT端点中拥有该属性,则POST和PUT都不需要Id属性.这使得无需检查URL中的Id是否与模型中的Id匹配.
您的示例不会显示差异,但在许多情况下,您确实不想更新某些字段.例如,假设您有一个Created和Updated日期字段,您不希望通过PUT更改您创建的日期.您不希望通过PUT更新的数据越多,模型之间的差异就越明显和有价值.
在您的情况下,即使使用这两个属性,我仍然会创建2个不同的模型,即使它们几乎相同,这也预示着API如何工作,并在其他所有人的脑海中创建一个清晰的设计.
内容总结
以上是互联网集市为您收集整理的c# – POST和PUT的不同型号要求全部内容,希望文章能够帮你解决c# – POST和PUT的不同型号要求所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。