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

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

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

 

转载于:https://www.cnblogs.com/cvol/p/6836644.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值