NET API 中的 FromRoute、FromQuery、FromBody 用法
時間:2023-08-30 12:57:42
最近技術(shù)交流群里,還有不少小伙伴不知道 FromRoute、FromQuery、FromBody 這幾個特性是怎么使用的,也不清楚它們之間的區(qū)別在哪里,特意寫下這個文章,希望可以幫助到迷茫的小伙伴。
(相關(guān)資料圖)
在API開發(fā)過程中,我們先要確定我們的接口是干嘛的,獲取請求數(shù)據(jù)用 GET,上傳使用 POST,修改使用 PATCH,刪除是 DELETE,通常使用這4個就足夠了。
接著下一步,就是參數(shù)放在哪了,通常:
(1)GET請求的參數(shù),是以url?xxx=value1&xxx=value 這樣的方式進行傳承;
(2)POST、PATCH,則是放在 body里,當然也可以放在form中;
(3)而所有的請求方式,都是支持通過 url 傳承的,包括通過 route 傳承;
好久沒寫文檔了,都不知道怎么寫了,還是直接上代碼吧;
我們新建一個API工程,過程我就不演示了;建一個Controller,我這里起名為 MethodsController;還需要建一個接收參數(shù)的實體類,當然也可以不使用實體類,個人建議是使用;
實體類 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);} 示例
寫得不好,手生了,大家有什么想了解的歡迎在評論區(qū)留言
相關(guān)稿件
NET API 中的 FromRoute、FromQuery、FromBody 用法
手機號被十年前工作過的公司申報為企業(yè)聯(lián)系電話致騷擾不斷 涉事公司被判道歉并賠償
鄂州市優(yōu)待證申領(lǐng)實現(xiàn)常態(tài)化,70天左右可到申請人手中
梁朝偉與劉德華多年后再合作,年齡相仿,一個顯年輕,一個顯老態(tài)
“電力”十足、產(chǎn)業(yè)興旺!保康縣馬橋供電所蓄足“滿格電”為特色產(chǎn)業(yè)保駕護航
學生趴桌午休被收200元 官方:合理!有教育局文件,自愿原則!
異動快報:*ST交昂(600530)8月29日14點33分觸及漲停板
零跑汽車上半年虧22億、單車虧超5萬 毛利率仍未轉(zhuǎn)正
關(guān)于開展“清朗·杭州亞運會和亞殘運會網(wǎng)絡環(huán)境整治”專項行動的通知
愛麗家居:公司生產(chǎn)SPC產(chǎn)品,SPC產(chǎn)品的銷售收入約占營業(yè)收入的10%左右
創(chuàng)美藥業(yè)上半年營收同比增20.24% 月內(nèi)股價實現(xiàn)翻倍漲幅
國銀金租(01606)與信利(仁壽)高端顯示科技訂立融資租賃合同


