• WebApi2 知识点总结


    1、建议使用异步接口async Task<>

     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');
    });
  • 相关阅读:
    #419 Div2 Problem B Karen and Coffee (统计区间重叠部分 && 前缀和)
    #418 Div2 Problem B An express train to reveries (构造 || 全排列序列特性)
    FZU 2203 单纵大法好 (二分 && 贪心)
    51Nod 1413 权势二进制 (思维)
    51Nod 1433 0和5 (数论 && 被9整除数的特点)
    POJ 2492 A Bug's Life (带权并查集 && 向量偏移)
    POJ 1456 Supermarket (贪心 && 并查集优化)
    POJ 1182 食物链 (带权并查集 && 向量偏移)
    #417 Div2 Problem B Sagheer, the Hausmeister (DFS && 枚举)
    #417 Div2 Problem C Sagheer and Nubian Market (二分 && std::accumulate)
  • 原文地址:https://www.cnblogs.com/firstcsharp/p/5520315.html
Copyright © 2020-2023  润新知