• webapi 学习1


    创建mvc4,添加api 控制器

    Nuget管理包添加web api 2.2

    然后程序管理控制台输入命令Install-Package Microsoft.AspNet.WebApi  更新安装包

    添加api控制器,例子:

     1     [RoutePrefix("api")]
     2     public class ReservationController : ApiController
     3     {
     4         IReservationRepository repo = ReservationRepository.getRepository();
     5       //   [Route("Reservation")]
     6         [HttpGet]
     7         public IHttpActionResult GetAllReservations()
     8         {
     9             return Ok(ReturnJsonResult.GetJsonResult(1, "", repo.GetAll()));
    10           
    11 
    12         }
    13        // [Route("Reservation/get")]
    14         [HttpGet]
    15         public IHttpActionResult Get1()
    16         {
    17             return Ok(ReturnJsonResult.GetJsonResult(1, "", repo.GetAll()));
    18       
    19 
    20         }
    21    
    22     }
    View Code

    这里的IHttpActionResult,是一种api Action的应答,常有返回一个对象,转为HttpResponseMessage,另一种手动创建HttpResponseMessage,还有就是本人用到的IHttpActionResult。

    允许,输入地址http://localhost:52696/api/Reservation/GetAllReservations,会报错<ExceptionMessage>找到了与该请求匹配的多个操作,

    这是webapi路由配置问题,到WebApiConfig

    把 routeTemplate: "api/{controller}/{id}",改为 routeTemplate: "api/{controller}/{action}/{id}",即可,由此可看出

    • 通过在路由模板中增加action目录,对资源的定位直接作用到action上。
    • 多个HttpGet方法可以共存于一个controller中。
    • 基于上面两点结论,通过修改路由模板可以满足针对一种资源一种请求方式的多种操作

    再次运行,,成功。

  • 相关阅读:
    统计数据持久化
    缓存层的实现
    C++语法疑点
    为什么需要定义虚的析构函数?
    C++ shared_ptr deleter的实现
    条件变量
    ubuntu  输入时弹出剪切板候选项
    leetcode Bitwise AND of Numbers Range
    C/C++ 字符串 null terminal
    C++ inline weak symbol and so on
  • 原文地址:https://www.cnblogs.com/wuyiran/p/6122046.html
Copyright © 2020-2023  润新知