WebApi2 知识点总结
2016-05-23 15:56
302 查看
1、建议使用异步接口async Task<>
如果返回的是IEnumerable请使用:
如果返回是实体请使用:
此返回常常在获取一个类型值时使用:
如果仅仅返回一个成功结果200就是直接Ok();就行了
如果想返回一个实体类又想返回一个地址路由请使用:
2、在WebApi里怎样自定义方法?怎样调用方法?
如果是get访问则所有方法前面都要加Get; Post则要加Post;可是调用的时候要去掉Get/Post
比如上面的代码要调用它要这样:/api/users/test?account=james
当然你也可以添加路由改变访问方式:
上面要调用则使用:/api/users/test/james方式
-------------------------------------------------------------------------------------
再来看Post示例
这个表示是Post访问调用,它的调用为:/api/Users/login?school=十五里元中学
如果多个参数,建议直接使用类型传值,不要使用string。比如:
调用:
public async Task<IHttpActionResult> Get()
如果返回的是IEnumerable请使用:
return Ok<IEnumerable<ListSitesDetails>>(sites);
如果返回是实体请使用:
return Ok(entity);
此返回常常在获取一个类型值时使用:
public async Task<IHttpActionResult> Get(int id)
如果仅仅返回一个成功结果200就是直接Ok();就行了
如果想返回一个实体类又想返回一个地址路由请使用:
return CreatedAtRoute("DefaultApi", new {controller="Home",id=sites.Id }, sites); 转到api/Home/id上,并返回刚刚添加的sites新内容
return Created("http://www.*.com",sites); 返回sites和位置
2、在WebApi里怎样自定义方法?怎样调用方法?
public async Task<IHttpActionResult> GetTest(string account) { string restmsg = await UserLogin("十五里元中学", account, "0000"); return Ok(restmsg); }
如果是get访问则所有方法前面都要加Get; Post则要加Post;可是调用的时候要去掉Get/Post
比如上面的代码要调用它要这样:/api/users/test?account=james
当然你也可以添加路由改变访问方式:
[Route("api/users/gettest/{account}")]
public async Task<IHttpActionResult> GetTest(string account) { string restmsg = await UserLogin("十五里元中学", account, "0000"); return Ok(restmsg); }
上面要调用则使用:/api/users/test/james方式
-------------------------------------------------------------------------------------
再来看Post示例
[HttpPost] public async Task<IHttpActionResult> PostLogin(string school)
这个表示是Post访问调用,它的调用为:/api/Users/login?school=十五里元中学
如果多个参数,建议直接使用类型传值,不要使用string。比如:
[HttpPost] public async Task<IHttpActionResult> PostLogin(Item item)
public class Item { public string school{get;set;} public string account{get;set;} public string password{get;set;} }
调用:
var item = {'school':'十五里元中学','account':'james','password':'0000'}; return $http({ url: 'api/user/login', method: 'POST', type: 'application/json', data: item }).then(function (user) { // check the user is null or not and take action }).error(function (error) { alert('invalid'); });
相关文章推荐
- glib源码安装使用方法
- GridView
- WVPlots: example plots in R using ggplot2
- mysql数据库开发规范
- MySQL问题:Access denied for user 'root'@'localhost' (using password: YES)
- 如何从频谱图看一副图像的高频和低频成分
- C++primer_第七章_类_学习跟踪
- Android 面试题总结之Android 基础(二)
- Swift基础语法
- Ajax 完整教程 (转)
- nginx rewrite proxy_pass location 的理解
- 【参考资料】Linux(CentOS 7.0)安装Oracle11g R2
- 《Linux就该这么学》 - 必读的Linux系统与红帽认证自学手册
- Android 使用Retrofit2问题汇总
- Win Server 8中的利器:微软在线备份服务
- Android学习系列(18)--App数据格式之解析Json
- nodejs ssdb探索
- [Python]第十讲:迭代
- 26. Remove Duplicates from Sorted Array&&27. Remove Element
- 输出单层结点