• LindDotNetCore~添加路由前缀


    回到目录

    路由前缀就是我们所说的api/values里的api,这里的api可以用其它具体含义的字符表示,如Shop,Order,Game,它可以表示一个个模块,这一般在单体架构里;也可以是一个个小服务,这一般在微服务架构里.

    对于基于微服务的设计理念里,我们每个模块都成了一个网站,一个服务,它们的路由应该具有一定的可读性,不能都是api/v1,api/v2了,我们最好可以统一天入口添加它,默认地,这种前缀是在控制器上添加特性来实现的,例如:

    [Produces("application/json")]
    [Route("api/v1/EF")]
    public class EFController : Controller

    而如果希望统一设置前缀,我们需要自己添加扩展方法,像IApplicationModelConvention集合里添加自己的路由前缀,一般地作法是在.net core startup类里添加扩展的注入,当然前提是你要设计扩展方法来实现对这个集合的insert操作.

        /// <summary>
        /// 路由扩展 
        /// </summary>
        public static class RoutePrefixExtensions
        {
            /// <summary>
            /// 添加自定义前缀
            /// </summary>
            /// <param name="opts"></param>
            /// <param name="routeAttribute"></param>
            public static void UseCentralRoutePrefix(this MvcOptions opts, IRouteTemplateProvider routeAttribute)
            {
                opts.Conventions.Insert(0, new RouteConvention(routeAttribute));
            }
        }

    这种在startup注册这个方法即可

     services.AddMvc(opt =>
     {
      opt.UseCentralRoutePrefix(new RouteAttribute("Api"));
     });

    事实上,根据我们的规则我们可以添加很多扩展 ,在AddMvc被注册时,同时注册进去!

    感谢各位阅读!

    回到目录

  • 相关阅读:
    使用 requests 维持会话
    使用 requests 发送 POST 请求
    使用 requests 发送 GET 请求
    requests 安装
    使用 urllib 分析 Robots 协议
    使用 urllib 解析 URL 链接
    使用 urllib 处理 HTTP 异常
    使用 urllib 处理 Cookies 信息
    使用 urllib 设置代理服务
    按单生产程序发布
  • 原文地址:https://www.cnblogs.com/lori/p/8406027.html
Copyright © 2020-2023  润新知