最近技术交流群里,还有不少小伙伴不知道 FromRoute、FromQuery、FromBody 这几个特性是怎么使用的,也不清楚它们之间的区别在哪里,特意写下这个文章,希望可以帮助到迷茫的小伙伴。
【资料图】
在API开发过程中,我们先要确定我们的接口是干嘛的,获取请求数据用 GET,上传使用 POST,修改使用 PATCH,删除是 DELETE,通常使用这4个就足够了。
接着下一步,就是参数放在哪了,通常:
(1)GET请求的参数,是以url?xxx=value1&xxx=value 这样的方式进行传承;
(2)POST、PATCH,则是放在 body里,当然也可以放在form中;
(3)而所有的请求方式,都是支持通过 url 传承的,包括通过 route 传承;
好久没写文档了,都不知道怎么写了,还是直接上代码吧;
我们新建一个API工程,过程我就不演示了;建一个Controller,我这里起名为 MethodsController;还需要建一个接收参数的实体类,当然也可以不使用实体类,个人建议是使用;
实体类 public class Parameter{ public string? Method { get; set; } public string? Value { get; set; }}
Url 传参 [HttpGet]public async TaskGetQueryAsync([FromQuery] Parameter query){ return await Task.FromResult(query);}
示例 Route 传参 [HttpGet(\"{method}/{value}\")]public async TaskGetRouteAsync([FromRoute] Parameter route){ return await Task.FromResult(route);}
示例 Body传参 [HttpPost]public async TaskPostAsync([FromBody] Parameter body){ return await Task.FromResult(body);}
示例 混合 [HttpPatch(\"{method}/{value}\")]public async Task>PatchAsync( [FromRoute] Parameter route, [FromQuery] Parameter query, [FromBody] Parameter body){ var result = new Dictionary() { [\"route\"] = route, [\"query\"] = query, [\"body\"] = body }; return await Task.FromResult(result);}
示例
public class Parameter{ public string? Method { get; set; } public string? Value { get; set; }}
[HttpGet]public async TaskGetQueryAsync([FromQuery] Parameter query){ return await Task.FromResult(query);}
示例 Route 传参 [HttpGet(\"{method}/{value}\")]public async TaskGetRouteAsync([FromRoute] Parameter route){ return await Task.FromResult(route);}
示例 Body传参 [HttpPost]public async TaskPostAsync([FromBody] Parameter body){ return await Task.FromResult(body);}
示例 混合 [HttpPatch(\"{method}/{value}\")]public async Task>PatchAsync( [FromRoute] Parameter route, [FromQuery] Parameter query, [FromBody] Parameter body){ var result = new Dictionary() { [\"route\"] = route, [\"query\"] = query, [\"body\"] = body }; return await Task.FromResult(result);}
示例
[HttpGet(\"{method}/{value}\")]public async TaskGetRouteAsync([FromRoute] Parameter route){ return await Task.FromResult(route);}
示例 Body传参 [HttpPost]public async TaskPostAsync([FromBody] Parameter body){ return await Task.FromResult(body);}
示例 混合 [HttpPatch(\"{method}/{value}\")]public async Task>PatchAsync( [FromRoute] Parameter route, [FromQuery] Parameter query, [FromBody] Parameter body){ var result = new Dictionary() { [\"route\"] = route, [\"query\"] = query, [\"body\"] = body }; return await Task.FromResult(result);}
示例
[HttpPost]public async TaskPostAsync([FromBody] Parameter body){ return await Task.FromResult(body);}
示例 混合 [HttpPatch(\"{method}/{value}\")]public async Task>PatchAsync( [FromRoute] Parameter route, [FromQuery] Parameter query, [FromBody] Parameter body){ var result = new Dictionary() { [\"route\"] = route, [\"query\"] = query, [\"body\"] = body }; return await Task.FromResult(result);}
示例
[HttpPatch(\"{method}/{value}\")]public async Task>PatchAsync( [FromRoute] Parameter route, [FromQuery] Parameter query, [FromBody] Parameter body){ var result = new Dictionary() { [\"route\"] = route, [\"query\"] = query, [\"body\"] = body }; return await Task.FromResult(result);}
示例
写得不好,手生了,大家有什么想了解的欢迎在评论区留言
关键词:
(责任编辑:黄俊飞)推荐内容
- NET API 中的 FromRoute、FromQuery、FromBody 用法
- 机器人表演、赠送特殊“船票”,北京科技
- 科创50 ETF规模突破1300亿,成为境内第
- 河南三门峡市与西安等13个城市建立公积金
- 六安一5座小货车 交警点出了25人!
- 众安保险上半年实现归母净利润2.21亿元
- 诺基亚2650(2630诺基亚)
- 真硬气,魏牌蓝山获得首个第三排侧碰测试
- 香港:7月私人住宅楼价指数连续3个月下跌
- 2023年溧阳接种九价宫颈癌疫苗哪些人可以
- 薯片的做法 家常做法(薯片的10种做法)
- 山西临汾可提供夏普洗衣机维修服务地址在
- 纽约股市三大股指28日上涨
- 欧盟国家今冬将燃烧更多煤炭 已在悄悄松
- 【县域速览】5篇
- 宝宝不爱吃肉会营养不良吗?
- 重疾险保障期限买多少年合适呢?一年多少
- LED销售收入超10亿,聚飞半年报公布
- 四月是你的谎言op罗马音(四月是你的谎言
- 赤天化(600227)8月28日主力资金净卖出4
- 去美发学校学美发要多少钱_学美发多少钱
- qq空间打开申请网址(qq空间开启申请网址)
- 新空间剧场《猫神在故宫》喜迎百场演出
- 鍥藉缁熻灞€鏈€鏂板彂甯冿紒杩欎竴
- 博主被防火监督员拦路收费200元,甘孜巴
- 莲塘(关于莲塘简述)
- 哈登必须向莫雷道歉低头认错 别无选择只
- 海南代表队夺冠!
- 月销10000+,国产大7座SUV标杆出新款,配
- 嘉祥县黄垓镇举办青年歌手大赛预选赛
- 马德里商标是什么意思?
- 超越主机 曝《阿凡达:潘多拉边境》PC版
- 电子游戏税收减免下降 78%!英国游戏工
- 分级标题怎么弄(分级b)
- 湖北省广水市发布暴雨蓝色预警
- 中国男篮首战后重返奥运形势如何?下一场
- 好医生网站学分多长时间能查到 好医生网站
- 江西师范大学文学院红色班级秉烛班赴上饶
- 2023年羽毛球世锦赛:陈清晨/贾一凡2-0击
- 女子因为跟孩子吵架欲轻生,两民警直接跳
- 自驾旅行到新疆露营?《向山海出发》今晚
- 斯洛伐克电力公司与西屋电气签署燃料供应
- 证券日报:坚定依法治市,护航资本市场稳
- 差21岁的“父女”恋,到底谁在看啊?
- 殚精竭虑什么意思(殚精竭虑的含义)
- 病毒病特效药(神经外科陈医生:专家:病
- 詹何钓鱼原文翻译注释(詹何钓鱼原文及翻
- 湖北省2023年注册会计师全国统一考试顺利
- 日月股份:控股股东、实际控制人、董事长
- 今日满天星碎冰蓝玫瑰的含义(蓝玫瑰的含
- 记者走访:洛阳各超市食盐供应量增大 部
- 传艺科技:营利双降!上半年度净利润同比
- 一图读懂丨第五届中国粮食交易大会有哪些
- 北京石景山区可提供约克中央空调维修服务
- 闻“汛”而动 阳光人寿助力防汛救灾及灾
- 中金海外映射研究:AI可激发经济增长长期
- EIA、OPEC、IEA的8月供需平衡表有哪些变化
- 夏威夷电力公司(HE)美股盘后跌幅一度扩
- 菜蟒(关于菜蟒简述)
- 日本排核污水引发跟风囤盐?小心带货者的
- 去美发学校学美发要多少钱_学美发多少钱
- qq空间打开申请网址(qq空间开启申请网址)
- 新空间剧场《猫神在故宫》喜迎百场演出
- 鍥藉缁熻灞€鏈€鏂板彂甯冿紒杩欎竴
- 博主被防火监督员拦路收费200元,甘孜巴
- 莲塘(关于莲塘简述)
- 哈登必须向莫雷道歉低头认错 别无选择只
- 海南代表队夺冠!
- 月销10000+,国产大7座SUV标杆出新款,配
- 嘉祥县黄垓镇举办青年歌手大赛预选赛
- 马德里商标是什么意思?
- 超越主机 曝《阿凡达:潘多拉边境》PC版
- 电子游戏税收减免下降 78%!英国游戏工
- 分级标题怎么弄(分级b)
- 湖北省广水市发布暴雨蓝色预警
- 中国男篮首战后重返奥运形势如何?下一场
- 好医生网站学分多长时间能查到 好医生网站
- 江西师范大学文学院红色班级秉烛班赴上饶
- 2023年羽毛球世锦赛:陈清晨/贾一凡2-0击
- 女子因为跟孩子吵架欲轻生,两民警直接跳
- 自驾旅行到新疆露营?《向山海出发》今晚
- 斯洛伐克电力公司与西屋电气签署燃料供应
- 证券日报:坚定依法治市,护航资本市场稳
- 差21岁的“父女”恋,到底谁在看啊?
- 殚精竭虑什么意思(殚精竭虑的含义)
- 病毒病特效药(神经外科陈医生:专家:病
- 詹何钓鱼原文翻译注释(詹何钓鱼原文及翻
- 湖北省2023年注册会计师全国统一考试顺利
- 日月股份:控股股东、实际控制人、董事长
- 今日满天星碎冰蓝玫瑰的含义(蓝玫瑰的含
- 记者走访:洛阳各超市食盐供应量增大 部
- 传艺科技:营利双降!上半年度净利润同比
- 一图读懂丨第五届中国粮食交易大会有哪些
- 北京石景山区可提供约克中央空调维修服务
- 闻“汛”而动 阳光人寿助力防汛救灾及灾
- 中金海外映射研究:AI可激发经济增长长期
- EIA、OPEC、IEA的8月供需平衡表有哪些变化
- 夏威夷电力公司(HE)美股盘后跌幅一度扩
- 菜蟒(关于菜蟒简述)
- 日本排核污水引发跟风囤盐?小心带货者的
- 济南市第三人民医院:大力加快基础设施建
- 亚冠小组赛抽签,泰山队遇到日本冠军+韩
- 安徽交警:这20人终生禁驾!
- 红酒一般多少度的为好
- 皇氏集团已靠“卖子”赚钱,董事长套现近
- 沃尔沃EM90预告图发布 定位豪华纯电MPV/
- 九兴控股公布2023财年中期权益分配方案
- 电影《孤注一掷》来蓉路演 成都天府公安
- 新一轮强降雨明起发展多地有大暴雨,北方
- 中欣氟材量价齐降净利锐降逾90% 4.42亿
- 印度“月船3号”探测器在月球软着陆成功
- 国家药监局附条件批准舒沃替尼片上市
- 国网信通2023中报净利润2.5亿元 同比增长8.19%
- 非主流网名简单_非主流网名 可爱
- 制造→智造!温江这3家企业车间被认定为
- 明知故犯!二次醉驾,被查时想起孩子了
- 郑恺孟鹤堂伯远结伴《向山海出发》,开启
- iqooneo3后盖是什么材质
- 2023北京·中国文物国际博览会将开幕,六
- 读书郎发布半年报,上半年营收同比减少超