c#-在我的后端使用[FromBody]识别WebAPI参数是一种好习惯吗?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#-在我的后端使用[FromBody]识别WebAPI参数是一种好习惯吗?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1520字,纯文字阅读大概需要3分钟。
内容图文
我有一个用angular和TypeScript编写的前端WebAPI,看起来像这样.
removeSubset(id: number): ng.IPromise<any> {
return this.$http.post(this.api + '/DeleteStudySubset', id)
.then(this.returnData);
}
returnData = (response: any) => {
return response.data;
};
它调用的后端版本是这样写的
[HttpPost]
[ResponseType(typeof(IHttpActionResult))]
public async Task<IHttpActionResult> DeleteStudySubset(int id)
{
await _subsetRepo.DeleteStudySubset(id);
return Ok();
}
起初,我遇到了URI 404错误,我一生都无法解决.然后我偶然发现了参数绑定[FromBody]属性,并使用它解决了404问题.
因此,后端API被重写为包括该属性,看起来像这样
[HttpPost]
[ResponseType(typeof(IHttpActionResult))]
public async Task<IHttpActionResult> DeleteStudySubset([FromBody] int id)
{
await _subsetRepo.DeleteStudySubset(id);
return Ok();
}
从我看来,我隐隐约约地理解[FromBody]告诉我的后端不要引用指向后端的url,而是搜索发送给它的正文?那正确吗?我认为我不能很好地解释我的朦胧理解.
标题中或多或少地概述了我的更多,最关键的问题,它是:是在我的后端上使用[FromBody]属性修复我的404良好实践,还是更多的黑客解决方案?
感觉像是解决方案太容易了,我担心总体上来说这是一个非优雅的解决方案,我只是在一个更严重的问题上打了个快速解决方案.例如未正确配置我的前端或后端API以使其彼此同步.
解决方法:
您的类型脚本正在编写帖子,然后在正文中发送id,这就是为什么您要输入404的原因,您应该更改打字稿以进行获取和保留后端,因为您不需要正文请求,因此get应该很好(在get调用的URL中发送ID).
或最佳实践是,Delete操作实际上是DELETE http请求,以便与REST更兼容,因此您需要使用HttpDelete标记后端方法,然后更改类型脚本以执行delete http请求.
我建议第二种选择.
内容总结
以上是互联网集市为您收集整理的c#-在我的后端使用[FromBody]识别WebAPI参数是一种好习惯吗?全部内容,希望文章能够帮你解决c#-在我的后端使用[FromBody]识别WebAPI参数是一种好习惯吗?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。