快读《ASP.NET Core技术内幕与项目实战》WebApi3.1:WebApi最佳实践( 二 )

2、通过QueryString
//从Query中获取实参时,就不需要在HttpGet中设置路径//如果请求参数名称和方法行参名称不同,则要指定[FromQuery]的Name属性//假设请求参数schoolName为aaa,classNo为bbb//则请求地址为api/Test/GetAll?schoolName=aaa&classNum=bbb[HttpGet]public ActionResult<Student> GetAll(string schoolName, [FromQuery(Name = "classNo")]string classNum){}3、通过请求体
//方法参数为复杂类型时,自动序列化为JSON,通过请求体发送//参数中可加、可不加[FromBody]//请求地址为api/Test/AddNew[HttpPost]public ActionResult<Student> AddNew(Student studentDto){persons.Add(studentDto);return Ok(studentDto);}4、除了FromRoute、FromQuery、FromBody之外,还有FromForm、FromHeader等
5、传递参数最佳实践:
①GET和DELETE请求,参数使用QueryString
②POST请求,参数使用请求体
③PUT请求,定位参数使用QueryString,DTO参数使用请求体
④GET请求,如果参数内容超过URL长度限制,则把请求改为PUT,并通过请求体来传递参数
⑤Restful风格,要求路径参数用于定位资源,Query参数用于传递额外参数,但使用Query更符合中文习惯,所以URL还是比较少使用
⑥注意:请求报文头的Content-Type要设置为application/JSON

特别说明:1、本系列内容主要基于杨中科老师的书籍《ASP.NET Core技术内幕与项目实战》及配套的B站视频视频教程,同时会增加极少部分的小知识点2、本系列教程主要目的是提炼知识点,追求快准狠,以求快速复习,如果说书籍学习的效率是视频的2倍,那么“简读系列”应该做到再快3-5倍

经验总结扩展阅读