当前位置: 首页 > news >正文

证件照制作免费版seo资源网

证件照制作免费版,seo资源网,wordpress外链论坛,电商应该怎么做如何从零做起25 | 路由与终结点#xff1a;如何规划好你的Web API路由系统在 ASP.NET MVC 框架里面就已经存在了#xff0c;在 ASP.NET Core 框架里面进行了改进路由系统的核心作用是指 URL 和 应用程序 Controller 的对应关系的一种映射这个映射关系实际上有两种作用#xff1a;1、把 U… 25 | 路由与终结点如何规划好你的Web API路由系统在 ASP.NET MVC 框架里面就已经存在了在 ASP.NET Core 框架里面进行了改进路由系统的核心作用是指 URL 和 应用程序 Controller 的对应关系的一种映射这个映射关系实际上有两种作用1、把 URL 映射到对应的 Controller 对应的 action 上面去2、根据 Controller 和 action 的名字来生产 URL.NET Core 提供了两种路由注册的方式1、路由模板的方式2、RouteAttribute 方式这两种方式分别适用于的场景是不一样的路由模板的方式是之前传统的方式可以用来作为 MVC 的页面 Web 配置现在用的比较多的前后端分离的架构定义 Web API 的时候使用 RouteAttribute 方式去做在定义路由注册路由的过程中间有一个重要的特性就是路由约束是指路由如何匹配有以下简单的几种约束1、类型约束2、范围约束3、正则表达式4、是否必选5、自定义 IRouteConstraint另外路由系统提供了两个关键的类用来反向根据路由的信息生产 URL 地址1、LinkGenerator2、IUrlHelperIUrlHelper 与 MVC 框架里面的 MVCHelper 很像而 LinkGenerator 是全新提供的一个链接生成的对象可以从容器里面在任意的位置都可以获取到这个对象然后根据需要生成 URL 地址接下来看一下代码源码链接https://github.com/witskeeper/geektime/tree/master/samples/RoutingDemo为了方便演示这里先注册了一组 Swagger 的代码将 Web API 通过 Swagger 的可视化界面输出出来引入 Swagger 对应 ASP.NET Core 的包Swashbuckle.AspNetCore将代码文档 XML 文档注入给 Swaggerservices.AddSwaggerGen(c {c.SwaggerDoc(v1, new OpenApiInfo { Title My API, Version v1 });var xmlFile ${Assembly.GetExecutingAssembly().GetName().Name}.xml;var xmlPath Path.Combine(AppContext.BaseDirectory, xmlFile);c.IncludeXmlComments(xmlPath); });在中间件里面注册 Swaggerapp.UseSwagger(); app.UseSwaggerUI(c {c.SwaggerEndpoint(/swagger/v1/swagger.json, My API V1); });这样子就可以在界面上看到 Swagger 的界面并且浏览我们定义的 API接着是路由的定义 OrderControllernamespace RoutingDemo.Controllers {[Route(api/[controller]/[action])]// RouteAttribute 的方式[ApiController]public class OrderController : ControllerBase{/// summary/// /// /summary/// param nameid必须可以转为long/param/// returns/returns[HttpGet({id:MyRouteConstraint})]// 这里使用了自定义的约束public bool OrderExist(object id){return true;}/// summary/// /// /summary/// param nameid最大20/param/// returns/returns[HttpGet({id:max(20)})]// 这里使用了 Max 的约束public bool Max(long id){return true;}/// summary/// /// /summary/// param namess必填/param/// returns/returns[HttpGet({name:required})]// 必填约束public bool Reque(string name){return true;}/// summary/// /// /summary/// param namenumber以三个数字开始/param/// returns/returns[HttpGet({number:regex(^\\d{{3}}$)})]// 正则表达式约束public bool Number(string number){return true;}} }上面用到了自定义约束 MyRouteConstraintnamespace RoutingDemo.Constraints {public class MyRouteConstraint : IRouteConstraint{public bool Match(HttpContext httpContext, IRouter route, string routeKey, RouteValueDictionary values, RouteDirection routeDirection){if (RouteDirection.IncomingRequest routeDirection){var v values[routeKey];if (long.TryParse(v.ToString(), out var value)){return true;}}return false;}} }注册 MyRouteConstraintservices.AddRouting(options {options.ConstraintMap.Add(MyRouteConstraint, typeof(MyRouteConstraint)); });让它生效之前需要在中间件注册的位置注入 UseEndpoints然后对 UseEndpoints 使用 MapControllersapp.UseEndpoints(endpoints {// 使用 RouteAttributeendpoints.MapControllers(); });通过这样子的方式把 OrderController 的路由注入进来启动程序可以看到一共有五个接口第一个接口是我们实现的自定义约束点击 try it out 后输入参数第二个接口约束最大为20输入5执行可以看到响应码是 200输入25执行可以看到响应码是 404也就说路由匹配失败了第三个接口因为参数是必须的所以没办法输入空值有一个前端的验证第四个接口以三个数字开始输入 234符合正则表达式响应码 200
http://www.pierceye.com/news/586641/

相关文章:

  • h5手机端网站开发优秀高端网站建设
  • 东莞桥头网站建设廊坊开发网站公司
  • sem优化托管公司湖南做网站seo
  • 网站流量下跌免费空间asp网站
  • 有没有可以做app的网站wordpress代码转义
  • 电子商务网站开发的任务书wordpress图片间距
  • 石家庄集团网站建设哪些网站可以做微信
  • 网站文件夹名平台期什么意思
  • 怎么用vps做网站论坛网站建设视频
  • 广州网站制作实力乐云seowordpress 评论模块
  • 永久免费制作网站木门行业做网站有什么好处
  • 怎么区分模板网站wordpress菜单怎么建
  • 网站开发最新效果企业手机网站建
  • 网站群管理系统哪个好wordpress制作会员功能
  • 做套现网站网站的访问量
  • 做网站网页需要学些什么做网站学的什么专业
  • 建设银行的官方网站纪念币公司宣传页设计印刷
  • 网站左侧图片悬浮代码常州工厂网站建设
  • 智慧团建网站怎么转团关系app制作开发小程序制作开发
  • 誉字号网站wordpress 展示模板下载
  • 网站不接入备案成都市建设工程质量协会网站
  • 企业网站html网站开发济南招聘
  • 网站html优化方法音乐网站开发参考文献
  • 网站建设及推广方案ppt模板微信小程序开发工具下载哪个版本
  • 固安县城乡和住房建设局网站科技公司手机端网站
  • 寿光网站建设思科企业网络拓扑图
  • 中国建设银行河南省分行网站建筑人才服务中心官网
  • 响应式app网站模板单页淘宝客网站2014年行吗
  • 西安网站推广优化高端定制网站开发设计建站流程
  • m版网站开发公司如何做网络推广营销