LindDotNetCore~添加路由前缀
2018-02-02 17:05
176 查看
回到目录
路由前缀就是我们所说的api/values里的api,这里的api可以用其它具体含义的字符表示,如Shop,Order,Game,它可以表示一个个模块,这一般在单体架构里;也可以是一个个小服务,这一般在微服务架构里.
对于基于微服务的设计理念里,我们每个模块都成了一个网站,一个服务,它们的路由应该具有一定的可读性,不能都是api/v1,api/v2了,我们最好可以统一天入口添加它,默认地,这种前缀是在控制器上添加特性来实现的,例如:
而如果希望统一设置前缀,我们需要自己添加扩展方法,像IApplicationModelConvention集合里添加自己的路由前缀,一般地作法是在.net core startup类里添加扩展的注入,当然前提是你要设计扩展方法来实现对这个集合的insert操作.
这种在startup注册这个方法即可
事实上,根据我们的规则我们可以添加很多扩展 ,在AddMvc被注册时,同时注册进去!
感谢各位阅读!
回到目录
路由前缀就是我们所说的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被注册时,同时注册进去!
感谢各位阅读!
回到目录
相关文章推荐
- DotNetCore跨平台~为Lind.DotNetCore框架添加单元测试的意义
- LindDotNetCore~ISoftDelete软删除接口
- LindDotNetCore~Scheduling任务调度模块的介绍
- LindDotNetCore~职责链模式的应用
- LindDotNetCore~授权中间件的介绍
- LindDotNetCore~Aspect面向方面编程
- LindDotNetCore~Ocelot实现微服务网关
- LindDotNetCore~Mock对实际应用中的意义
- LindDotNetCore~Polly组件对微服务场景的价值
- LindDotNetCore~基于模块化注入的介绍
- LindDotNetCore~docker里图像上生成中文乱码问题
- LindDotNetCore~入门基础
- linux小技巧——添加永久生效的路由
- Ember 翻译——教程十一:添加嵌套路由
- 用route命令添加永久路由
- NE40E中利用ip前缀在EBGP中拒绝不需要引入的路由
- bat脚本2:在同一个文件夹下的文件名字添加一个前缀
- 基于EF Core的Code First模式的DotNetCore快速开发框架