首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么默认http路由不包含{action}

默认的HTTP路由不包含{action}是因为在RESTful架构中,HTTP的请求方法(GET、POST、PUT、DELETE等)已经能够很好地表示对资源的操作,不需要再通过{action}来指定具体的操作。

RESTful架构是一种设计风格,旨在构建可伸缩的网络应用程序。它通过使用统一的接口和基于资源的URL来实现系统的解耦和可扩展性。在RESTful架构中,URL代表资源,而HTTP的请求方法表示对资源的操作。

默认的HTTP路由通常包含资源的标识符,例如/users/{id}表示获取特定用户的信息。这样的路由设计使得API的URL更加简洁和直观,同时也符合RESTful的设计原则。

通过使用HTTP的请求方法,可以对资源进行不同的操作,例如使用GET方法获取资源的信息,使用POST方法创建新的资源,使用PUT方法更新资源,使用DELETE方法删除资源。这种基于请求方法的操作方式已经足够表达对资源的各种操作,因此不需要通过{action}来指定具体的操作。

总结起来,不包含{action}的默认HTTP路由设计符合RESTful架构的原则,使得API的URL更加简洁和直观,同时通过使用HTTP的请求方法来表示对资源的操作,避免了冗余和混淆。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Struts2学习---namespace,file模块包含默认action

我们上一节已经将action基本的配置和使用讲了,接下来我们讲以下struts一些小知识点: namespac: 上一节学习action的时候我们访问我们jsp文件时候使用的: http://localhost...:8080/testStruts2/hello 这个路径,有同学就会问,为啥只能用这个路径, 其实我们也可以用: http://localhost:8080/testStruts2/hello.action...所以我们就知道了为空或者“/”是一种默认路径,当项目中没有我们指定的路径的时候(dd/ddd/hello),我们这个namespace为空或者为“/”的这个action便承担起了默认访问的作用。...默认action: 当我们访问页面时候,当你访问的页面不存在的时候,会出现错误,所以我们可以为struts设置一个默认页面,当没有用户想访问的页面的时候,我们为用户默认返回一个页面。 只要在package里面加上 就可以让当用户访问页面不存在的时候,访问我们的默认页面。

52160

GOLANG 中HTTP默认路由匹配规则阅读笔记

《Go Web 编程 》3.3 Go如何使得Web工作 二、DefaultServeMux 路由匹配规则 先看几个路由规则: package main import ( "log" "net/http.../path/ 2.我设置了这么多规则为什么规则一可以通用匹配未设置的路由信息,而且又不影响已经存在路由, 内部是怎么实现的?...2.1 添加路由规则 先看两个struct,这是存放默认路由规则的: type ServeMux struct { mu sync.RWMutex //处理并发,增加读写锁 m map...[string]muxEntry //存放规则map,key即为设置的path hosts bool // whether any patterns contain hostnames(是否包含host...当然也就解释了为什么/可以匹配所有(看pathMatch函数就知道了,/是匹配所有的,只是这是最后才被匹配成功) 2.得到了处理请求的handler,再调用h.ServeHTTP(w, r),去执行相应的

3.4K60

为什么建议使用框架默认的 DefaultMeterObservationHandler

为什么建议使用框架默认的 DefaultMeterObservationHandler 背景知识 最近,我们升级了 SpringBoot 3.x,并且,升级后,我们全面改造了原来的 Sleuth 以及...> <project xmlns="<em>http</em>://maven.apache.org/POM/4.0.0" xmlns:xsi="<em>http</em>://www.w3.org/2001/XMLSchema-instance..." xsi:schemaLocation="<em>http</em>://maven.apache.org/POM/4.0.0 <em>http</em>://maven.apache.org/xsd/maven-4.0.0...我们将全局的 ObservationHandler 改<em>为什么</em>都不做的,对比下: package com.github.hashjang.wwsmbjysymrdo; import io.micrometer.common.KeyValue...解决方案 我们可以替换掉 DefaultMeterObservationHandler,自己实现一个 MeterObservationHandler,在 start 的时候,<em>不</em>创建 LongTaskTimer.Sample

5500

spring mvc为什么默认使用jackson而选择fastjson

回头想想fastjson过程中也是碰到些问题, 一些特殊的json字段例如包含了/等, 默认开启了ASM, 即使在@JSONField设置了别名, 还是无法把json字符串转为对象, 必须禁止ASM,...2. spring mvc默认选择的jackson 现在回头看下Jackson, 参考下MappingJackson2HttpMessageConverter用法, 基本都是重用一个ObjectMapper...那spring mvc为什么还是选择了jackson作为默认的json库呢? 主要的原因应该是jackson功能全面, 相对稳定, 可定制化一些。...(1) jackson包含了stream api, 有点类似 XML的SAX解析, 流读取可以省很多内存。...spring mvc, spring boot, spring security里面json默认都是jackson处理, 如果不想多配置, jackson也将就着, 综合看它应该相对全面些稳些。

1.6K20

为什么MySQL建议使用NULL作为列默认值?

今天来分享一道美团高频面试题,5 分钟搞懂“为什么 MySQL 建议使用 NULL 作为列默认值?”。...着急的人拉到最下边看结论 前言 NULL值是一种对列的特殊约束,我们创建一个新列时,如果没有明确的使用关键字not null声明该数据列,MySQL会默认的为我们添加上NULL约束。...有些开发人员在创建数据表时,由于懒惰直接使用Mysql的默认推荐设置.(即允许字段使用NULL值).而这一陋习很容易在使用NULL的场景中得出不确定的查询结果以及引起数据库性能的下降。...(就像额外的标志位一样) 根据以上缺点,我们并不推荐在列中设置NULL作为列的默认值,你可以使用NOT NULL消除默认设置,使用0或者''空字符串来代替NULL。

34420

ASP.Net MVC开发基础学习笔记:三、Razor视图引擎、控制器与路由机制学习

(1)必须是非静态类   (2)必须实现IController接口   (3)必须是以Controller结尾命名 2.3 无所不能的Action   首先,在一个Controller中可以包含多个...三、Routing深入详解   首先,ASP.Net MVC项目是URL请求驱动的,为什么访问localhost/home/index会传递给HomeController中名为index的action(...这是为什么呢?...(路由)规则,比如实例中的规则完全可以改为:   routes.MapRoute( "Default", "{controller}/{action}");   ③defaults参数:   url参数的默认值...,也就是将Home-Index作为Controller的名称进行匹配,这也就证明了为什么我们输入这个请求不会匹配第二条Default2的路由规则出现刚刚那个404页面了。

1.8K30

Asp.Net Web API 2第六课——Web API路由和动作选择

这个默认值也可以包含未出现在路由模板中的值。若这条路由匹配,则该值会被存储在路由字典中。...这个默认实现是由ApiControllerActionSelector类提供的。为了选择一个动作,会查找以下方面:   1.HTTP请求的方法。   2.这个路由模板中的“action”占位符。   ...在这种背景下,动作选择算法如下: 1.创建该控制器中与HTTP请求方法匹配的所有动作的列表。 2.如果路由字典有“action”条目,移除与该条目值匹配的动作。...这个路由字典包含action“条目,因此不需要匹配动作名称。 下一步,会试图匹配这些动作的参数名,只考查GET动作。 ? 注意,不会考虑GetById的version参数,因为它是一个可选参数。...GetById方法也匹配,因为路由字典包含了“id”。FindProductsByName方法匹配。 GetById方法是赢家,因为它匹配了一个参数,而GetAll无参数。

93720

ASP.NET Web API编程——路由

对于api/root/{id} 务必对defaults设置控制器(controller)的默认值,,不然无法执行路由过程。可以设置操作(Action)。...若不设置操作(Action)那么匹配以HTTP方法开头的操作(Action)。...ApiControllerActionSelector会查找请求的HTTP方法、路由模板中的{action}占位符、控制器操作的参数列表。...2)如果路由词典中包含关于操作(Action)的键值对,移除链表中名称和值匹配的操作(Action)。 3)匹配操作(Action)参数与URI。...对于来自于URI的参数,要确保URI确实包含对应参数的值,这个值可能在路由词典中或查询字符串中。 对于可选的参数,如果绑定不能从URI中获得参数的值,对于操作(Action)的选择也没有影响。

1.7K80

ASP.NET MVC5高级编程 ——(5)路由

由此我们引出了路由的主要用途: 匹配传入的请求(该请求匹配服务器文件系统中的文件),并把这些请求映射到控制器操作。...对于以上代码,如果通过URL为 : /home进行访问,根据类定义的路由模版home/{action},以上代码不能运行。因为定义的路由只匹配包含两个段的URL,但是/home只包含一个段。...如果我们想让Index成为默认action路由API允许为参数提供默认值,代码如下: [Route("home/{action=Index}")] {action=Index}这段代码为{action...[Route("home/{action=Index}/{id?}")] 这段代码提供默认值Index,以及可选值id。 因为第二个段id是可选值,因此匹配的URL不再必须包含两个段。...*",action=“^Index$“|”^About$”} ); //只匹配action= Index或者About的路由 约束使用HTTP方法的路由: 目标:对匹配的URL使用的HTTP

1.9K40

Spiral 详细上手指南之路由规则

实践目标 我们首先要为博客文章创建路由和控制器,包含以下的路由: GET "/posts": 文章列表页 GET "/posts/": 文章详情页 POST "/posts": 创建文章的 API...// 指向对应的控制器和方法 两组路由都有默认值,controller 的默认值是 "HomeController",action默认值是 "index",...>]: 同上,但是这里 action 是可选参数,通常这种情况下需要为 action 指定默认值,指定的话系统默认是 index "/[[/]]": 同上,但这里...默认action,可选参数(默认值:"index") ) ); 这个实例定义了一条路由规则,可以匹配以下路径: "/posts": 会调用 PostController::index(int...如果要严格限制的话,可以把我们的路由拆成两条,一条包含必备参数 ,一条不含 参数。

1.4K80

Asp.Net Web API 2第五课——Web API路由

如果你熟悉Asp.Net MVC,Web API的路由与Asp.Net MVC的路由是非常类似的。这主要的区别就是Web API使用的是HTTP方法,而不是URI路径来选择Action。...(暂未实现)   路由表中的每一个条目都包含一个路由模板。这个Web API默认路由模版是"api/{controller}/{id}"。...例如,以下URI与这个默认路由的匹配: /api/contacts /api/contacts/1 /api/products/gizmo1 然而,以下URI匹配,因为它缺少“api”片段: /contacts...当然,如果你不喜欢这种约定,你也可以修改这个默认路由表。  一旦一个匹配的路由被发现,Web API便会选择相应的Controller和Action。   ...指定的位置创建集合(WebDAV更没见过) 通过Action名称路由默认路由模版中,这个Web API使用HTTP方法去选择Action

1.2K50

路由是如何映射的?

继承ModelViewSet,路由写法 自己配路由的映射 自动生成路由 action装饰器 继承APIView+ViewSetMixin使用装饰器 路由router形成URL的方式 DRF 路由组件...路由的配置上篇我们提到了一点自动配置,对于继承了视图集ViewSet就可以自动生成路由,当然了也可以选择手动版自己配,可以使用action装饰器来指定方法等操作,屁话不多说如下: REST framework...id,False带id url_path:地址,地址如果写,默认已方法名为地址 url_name:起别名 继承APIView+ViewSetMixin使用装饰器 from rest_framework.decorators...://127.0.0.1:8000/aip/v2/test/login/ ''' 注意: 如果这样写detail=True,路由就成了http://127.0.0.1:8000/aip/v2/test/...SimpleRouter的区别是,DefaultRouter会多附带一个默认的API根视图,返回一个包含所有列表视图的超链接响应数据 总结 路由的写法有三种: 手动配置:path('books/<int

70110

Laravel学习教程之路由模块

路由管理”服务有以下元素需要了解: Route:路由;会记录 Url、Http 动作、Action (路由要执行的具体对象,可能是 Closure,也可以是某个 Controller 中的方法),路由参数...、prefix、as、middleware、namespace、where; Resource:资源路由;资源路由是一套路由的统称,包含列表(index)、显示增加(create)、保存增加(store...url 有参数,但没有传参数值,则会找全局默认参数值;输出 http://en.example.com/foo $url->route('defaults'); 设置全局命名空间 这样调用的时候,不用在...headers = []) to 通过调用app('redirect')->to('path')会跳转至指定路径页面;或者全局帮助函数redirect('path')也可以; 这里的 path 路径是包含根目录的...'redirect')->secure('path')会跳转至指定路径页面;这里的path路径是包含根目录的; public function secure($path, $status = 302,

81120
领券