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]这个特性的时候也是优先注册的。

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

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

  • 相关阅读:
    Python基础知识(八)—字典
    Python基础知识(七)—元组
    Python基础知识(六)—关于列表深拷贝和浅拷贝及内存图
    Python基础知识(六)—列表
    Python基础知识(五)—字符串
    4、FTP、SSH协议简单介绍
    3、apt-get install xxx时,报错信信息: Could not get lock /var/lib/dpkg/lock-frontend
    2、NFS挂载根文件系统失败:Root-NFS: Unable to get mountd port number from server, using default
    EXPORT_SYMBOL是什么?
    用maven建立一个工程2
  • 原文地址:https://www.cnblogs.com/cvol/p/6836644.html
Copyright © 2011-2022 走看看