NET API 中的 FromRoute、FromQuery、FromBody 用法
時間:2023-08-30 12:57:42
最近技術交流群里,還有不少小伙伴不知道 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 用法
手機號被十年前工作過的公司申報為企業聯系電話致騷擾不斷 涉事公司被判道歉并賠償
梁朝偉與劉德華多年后再合作,年齡相仿,一個顯年輕,一個顯老態
“電力”十足、產業興旺!保康縣馬橋供電所蓄足“滿格電”為特色產業保駕護航
學生趴桌午休被收200元 官方:合理!有教育局文件,自愿原則!
異動快報:*ST交昂(600530)8月29日14點33分觸及漲停板
關于開展“清朗·杭州亞運會和亞殘運會網絡環境整治”專項行動的通知
愛麗家居:公司生產SPC產品,SPC產品的銷售收入約占營業收入的10%左右
國銀金租(01606)與信利(仁壽)高端顯示科技訂立融資租賃合同