真实职场关于Web api学习指南(免费开放)一一8.Web api必学的特性路由

开始正文前,咱们先了解下,接下来的文章作者都会围绕《真实职场关于Web api学习指南(免费开放)》开展章节,让你们明白真实职场关于Web api上的认知和实际应用。点进来看的朋友,估计都是为了学习这项技术而来的,不用着急,静下心来慢慢看,可能会有不一样的收获。

  适合学习人群:刚入行IT新人和不懂Web api的朋友们

  顺带给大家一个学习或工作利器----职业帮手pt(第三方API接口) :

因为现在很多第三方API接口都是需要高昂收费的,针对人群大多数是企业,而个人来说相对比较少,就算是服务商平台允许个人注册的,起步收费也是挺贵的,不适合个人开发者使用,有兴趣的朋友可以点击下面的链接,浏览查看(链接地址:http://apiplatform.top)


  本篇文章我们继续往下深入学习Web api另一个重要的知识点:特性路由

一、什么是特性路由?

  特性路由是指将RouteAttribute或自定义继承自RouteAttribute的特性类标记在控制器或ACTION上,同时指定路由Url字符串,从而实现路由映射,相比之前的通过Routes.Add或Routes.MapHttpRoute来讲,更加灵活与直观。

  换个小白都能听到的话,就是自己定义访问方法路径,不受多个不同控制器、配置相关的限制。


  其实也没多少难度,但如果大家是跳过之前的文章,直接观看本篇文章没有看明白的话,建议重新温习下之前的系列文章:https://blog.csdn.net/it_akk20210918/category_12117445.html?spm=1001.2014.3001.5482

  好了,我们直接上代码,从上篇文章的例子做二次更改,不太清楚的可以点击下面这个链接:

真实职场关于Web api学习指南(免费开放)一一7.Web api的控制器Controller 深入学习_IT_AKK20210918的博客-CSDN博客

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;

namespace WebApplication1.Controllers
{
    [RoutePrefix("HelloWorld")] //当前控制器路由地址
    public class DemoController : ApiController
    {
        /// <summary>
        /// 查询用户ID
        /// 参数:空
        /// </summary> 
        [Route("QueryOne")]
        [HttpGet]
        public string QueryUserId()
        {
            try
            {
                //ADO.NET 自行连接访问数据库,获取数据来源 
                return "ADO.NET 自行连接访问数据库 获取到的数据来源,如字符串";
            }
            catch
            {
                return null;
            }
        }

        /// <summary>
        /// 查询用户ID
        /// 参数:用户编号
        /// </summary> 
        [Route("QueryTwo")]
        [HttpGet]
        public string QueryUserId(string userNo)
        {
            try
            {
                //ADO.NET 自行连接访问数据库,获取数据来源 
                //userNo 根据这个参数,获取返回数据
                return string.Format("参数:{0},ADO.NET 自行连接访问数据库 获取到的数据来源,如字符串",userNo);
            }
            catch
            {
                return null;
            }
        }

        /// <summary>
        /// 查询用户ID
        /// 参数:用户名称,用户性别
        /// </summary> 
        [Route("QueryThree")]
        [HttpGet]
        public string QueryUserId(string userName, string userSex)
        {
            try
            {
                //ADO.NET 自行连接访问数据库,获取数据来源 
                //userNo 根据这个参数,获取返回数据
                return string.Format("参数:{0}|{1},ADO.NET 自行连接访问数据库 获取到的数据来源,如字符串", userName, userSex);
            }
            catch
            {
                return null;
            }
        }

        /// <summary>
        /// 查询用户ID
        /// 参数:实体用户信息
        /// </summary> 
        [Route("QueryFour")]
        [HttpGet]
        public string QueryUserId([FromUri] Models.UserInfo userInfo)
        {
            try
            {
                //ADO.NET 自行连接访问数据库,获取数据来源 
                //userInfo 根据实体参数,获取返回数据
                return string.Format("返回参数:{0}|{1},ADO.NET 自行连接访问数据库 获取到的数据来源,如字符串", userInfo.UserNo, userInfo.UserName);
            }
            catch
            {
                return null;
            }
        }
    }
}

  如果细看的朋友们估计会看出差异,大体上代码结构一致,唯独差异就是【RoutePrefix("HelloWorld")]】、[Route("QueryOne")]、[Route("QueryTwo")]、[Route("QueryThree")]、 [Route("QueryFour")]

  这些路由标识是自己定义的,Web api服务可以根据定义的路由特性,来访问到指定的Action方法,如图所示:

   结果一看,怎么不是啥啥啥 遵循 "api/{controller}/{id}" 的路由规则的吗?如果不懂,再往上查看什么是 “特性路由的定义”。

  最后大家灵活运用,不管是GET请求访问,还是POST请求访问,都是一样通用的。上面给的例子,大家可以自行去创建的方法,自行本地访问调试,窍门已经告诉你了,感谢观看。


有需要资源的朋友,可以直接打开链接浏览,资源的内容已经是本章节系列的整合实例Demo。

如有耐心观看本章节的文章,请敬请期待接下来的文章,感谢阅读!

C#职场最精髓Webapi实例(Demo含源码,前后端分离,终身受益).rar_vs2019webapi实例,c#前后端分离-互联网文档类资源-CSDN下载

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT_AKK20210918

感谢阅读文章

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值