zoukankan      html  css  js  c++  java
  • 1.4WEB API 路由配置及参数传输

    在没有添加路由时,webapi 的访问比较恶心,访问的时候是没有接口方法的。如果定义了同样参数的方法,它就傻傻的分不清的,为了解决这个问题,我们加上路由吧。

     这是生成的api帮助文档列表,可以看到下面两个是直到values这一级的,参数一样,只是请求方式不一样。

    接口代码

      /// <summary>
        /// 获取值测试类
        /// </summary>
        [RoutePrefix("api/Values")]
        public class ValuesController : ApiController
        {
            /// <summary>
            /// 获取枚举类型
            /// </summary>
            /// <returns>枚举类型</returns>
            [Route("GETIEnumerable"), HttpGet]
            public IEnumerable<string> Get()
            {
                return new string[] { "value1", "value2" };
            }
    
            /// <summary>
            /// 获取值
            /// </summary>
            /// <param name="id"></param>
            /// <returns></returns>
            // GET api/values/5
            [Route("GETINT"), HttpGet]
            public string Get(int id)
            {
                return "value" + id;
            }
    
            /// <summary>
            ///  从请求体获取内容
            /// </summary>
            /// <param name="product">po</param>
        
            [Route("PostV"), HttpPost]
            public string Post([FromBody]Product product)
            {
                return product.Name + product.id;
            }
    
    
            // PUT api/values/5
            public void Put(int id, [FromBody]string value)
            {
            }
    
            // DELETE api/values/5
            public void Delete(int id)
            {
            }
        }
    
        /// <summary>
        /// 商品
        /// </summary>
        public class Product
        {
            /// <summary>
            /// 名称
            /// </summary>
            public string Name { get; set; }
            /// <summary>
            /// ID
            /// </summary>
            public string id { get; set; }
        }
    

      

    [RoutePrefix("api/Values")]配置路由前缀,它下面的方法都要加上这个api/Values才能访问。
    “api/”这个是保证它是接口地址。
    因为即使在WebApiConfig中注册了默认接口路由
     public static void Register(HttpConfiguration config)
            {
                // Web API 配置和服务
    
                // Web API 路由
                config.MapHttpAttributeRoutes();
    
                config.Routes.MapHttpRoute(
                    name: "DefaultApi",
                    routeTemplate: "api/{controller}/{id}",
                    defaults: new { id = RouteParameter.Optional }
                );
            }
    

      我们用[Route]这个特性的时候也是优先注册的。

    然后通过以前搞的配置测试方法可以看到效果。

    话说这玩意真心方便,跟前端对接直接给个帮助文档地址就好了。呵呵!

  • 相关阅读:
    QGraphicsItem鼠标旋转控制研究
    QT场景视图父子关系图元打印研究
    QT绘制B样条曲线
    [转]localhost、127.0.0.1和0.0.0.0和本机IP的区别
    [转]C++ 堆栈溢出的原因以及可行的解决方法
    C++运算符重载学习总结
    关于C++中使用++it还是it++的问题
    [转]QT中的D指针与Q指针
    Python图像处理库:Pillow 初级教程
    STEP-MXO2开发板 [STEP FPGA开源社区]
  • 原文地址:https://www.cnblogs.com/cvol/p/6836644.html
Copyright © 2011-2022 走看看