问题标签 [restful-url]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rest - 为什么在 REST 实现中的 URI 中包含动作动词会违反协议?
我发现有必要了解为什么在 URI 中包含动作动词会违反 URI 语法的 REST 协议?当我阅读下面的文章时,我感觉到太多人对动词发出了太多的噪音,他们应该对内容类型发出更多的噪音:
在一个完美的世界中,客户端浏览器都将支持 GET、POST、PUT 和 DELETE 进行请求操作。但是,仅支持 GET 和 POST,这意味着我们无法通过在 URL 中使用常见的动作动词(如查看、创建、编辑和删除)来识别应该是 PUT 和 DELETE 的操作。
这如何违反 REST 架构原则的精神,您在 URL 中添加“删除”之类的内容而不是使用“删除”时遇到的障碍是什么?
ruby-on-rails - 如何在 Ruby on Rails 应用程序中处理 RESTful URL 参数?
我正在处理一个非常简单的 RESTful Rails 应用程序。有一个用户模型,我需要更新它。Rails 程序员喜欢做的事情:
根据我对 REST 的了解,这个 URL 请求应该可以工作:
但是,很明显这不起作用,因为每个 URL 参数都将被解析为变量“params”而不是“params[:user]”
我现在有一个hackish修复,但我想知道人们通常如何处理这个问题。
谢谢
php - 是仅用于 Web 服务还是用于 Web 服务和网页?
我阅读了很多关于 PHP 的 Restful 教程。
(我不想深入探讨为什么我不使用 RoR。这是由于团队更熟悉 PHP)
因为我们正在计划未来扩展到拥有 API,所以我读到实现 Restful Web 服务很重要。
我看过教程,例如
http://www.gen-x-design.com/archives/create-a-rest-api-with-php/
显然,restful 是用于 web 服务的。
网页呢?他们也可以安静吗?
如果答案是否定的,请不要超出这条线并告诉我。谢谢你。
我知道让 url 看起来像 RESTFUL url 就是简单地使用 mod_rewrite。然而,我很确定,宁静的架构不仅仅是让 url 看起来不错。
例如,我在名为 list.php 的网页上有一个项目列表。每个项目旁边都有一个删除链接。例如,list.php?id=1&deleteitem
当有人点击 list.php?id=1&deleteitem 链接时会发生什么,当然我会回到同一个 list.php 文件并检查 $_GET 中的参数 deleteitem。
如果检测到,我将根据 $_GET 中的参数 ID 从数据库中删除。
之后,我将在没有任何参数的情况下重定向回 list.php。
我想知道,我如何让整个流程变得 RESTFUL?
我问是因为在 REST 中,要删除您需要使用 HTTP 请求方法 (DELETE) 的内容。
显然,在我的链接中,它们都只是简单的<a href="list.php?id=1&deleteitem">Delete</a>
请赐教。
我的编程不是那么强大,如果给出的建议可以尽可能外行,那就太好了。
谢谢你。
编辑
我有 2 个后续问题。
问题 1) 由于这是一个带有分页的项目列表,如果我想让它成为 RESTful,该 URL 会是什么样子?
问题2)由于我将删除链接放在列表中的每个项目旁边,我现在明白了,我应该使用
反而。
但是表格应该张贴到哪里?项目网址?/items/{item-id}
但我想在成功删除数据库中的行后返回此列表页面,显示成功消息。
当我用成功消息刷新此列表页面时,我还想避免弹出消息。
如果我发回这个 list.php 网址,那么它不是 RESTful 是吗?因为下面的答案告诉我,每个项目都是需要自己的 url 的资源。
请赐教。谢谢你。
web-services - REST 服务 - 公开非数据“动作”
我了解如何使用 REST 进行一般实体交互 - 使用 url 名称映射到实体,使用 HTTP 动词映射到这些实体上的操作。但是,人们普遍接受的看待“动作”更像 RPC 的方式是什么?
例如,假设我想发送命令让设备重置?这里没有真正的“实体”,还是我做一些类似 POST 的事情http://mydevice/device/reset?
spring - 如何使用 REST-ful URL 创建 Spring 3 + Tiles 2 webapp?
我有一段时间用 Spring 3.0 MVC 解析 URL。我只是在构建一个 HelloWorld 来尝试如何在 Spring 中构建一个 RESTful webapp,理论上没有什么复杂的。
我能找到的所有示例都基于注意文件扩展名(“*.htm”或“*.do”)的配置,包括人工目录名称前缀(“/foo”)甚至前缀带点的路径(丑陋),所有使用一些人工正则表达式模式作为解析器信号的方法。对于 REST 方法,我想避免所有这些垃圾,只使用我的应用程序的自然 URL 模式。我会假设(可能是错误的)在 web.xml 中我会设置一个“/*”的 url 模式并将所有内容传递给 DispatcherServlet 进行解析,然后只依赖我控制器中的 URL 模式。
我无法可靠地让我的解析器捕获 URL 模式,并且在我的所有试验中,这都会导致资源未找到错误、堆栈溢出(循环)或某种不透明的 Spring 3 ServletException 堆栈跟踪——一个我对 Spring 的持续不满通常是错误消息通常不是很有帮助。
我想使用 Tiles 2 解析器。我在 WEB-INF/views/ 中找到了我的 *.jsp 文件,并在应用程序根目录中有一个单行 index.jsp 文件,该文件重定向到我的 layout.xml(Tiles 2 配置器)设置的索引文件。
我做了所有正常的 Spring 3 高级配置:
...随后是 UrlBasedViewResolver、InternalResourceViewResolver、UrlFilenameViewController 等的各种组合和配置,以及我的 Tiles 2 配置文件中的各种变体。然后在我的控制器中,我试图获取我的 URL 模式。问题是,我什至无法可靠地让解析器捕获要发送到我的控制器的模式。
现在已经持续了好几天,在我认为很容易实现的事情上没有真正的进展。我可能试图一次做太多事情,尽管我认为这应该是一个简单的(几乎是默认的)配置。我只是想创建一个简单的 HelloWorld 类型的应用程序,我没想到这是火箭科学。
不是我发布我自己的配置(遍布地图),有谁知道一个在线示例:显示一个使用 REST-ful URL 的简单 Spring 3 MVC + Tiles 2 Web 应用程序(即,避免强制 URL 模式例如文件扩展名、添加的目录名或点)并仅依赖 Spring 3 代码/注释(即,Spring MVC 本身之外的任何内容)来完成此操作?是否有捷径可寻?
非常感谢您的帮助。
rest - 在 REST 调用中使用 URI 作为参数值的最佳实践
我正在设计一个 REST API,其中可以通过查询参数过滤一些资源。在某些情况下,这些过滤器值将是来自同一 REST API 的资源。这使得 URI 变得冗长且难以阅读。虽然这本身并没有太大的问题,因为 URI 旨在以编程方式创建和操作,但它会带来一些痛苦的调试。我正在考虑允许将 URI 的快捷方式用作过滤器值,我想知道根据 REST 架构是否允许这样做,以及是否有任何最佳实践。
例如:
我有一个资源可以让我获得 Java 类。然后以下请求将为我提供所有 Java 类:
假设我想要Collection
Java 类的所有子类,那么我将使用以下请求:
该请求将返回 meVector
以及Java 类ArrayList
的所有其他子类。Collection
不过,那个 URI 很长。我已经可以通过允许hs
作为has-supertype
. 这会给我:
允许较短 URI 的另一种方法是允许 URI 前缀的别名。例如,我可以class
为 URI prefix 定义一个别名http://example.org/api/v1/class/
。这会给我以下可能性:
另一种可能性是完全删除类别名,并始终在参数值前面加上前缀,http://example.org/api/v1/class/
因为这是我唯一支持的。这会将所有子类型的请求Collection
转换为:
原始请求 URI 的这些“简化”是否仍然符合 REST 架构的原则?还是我刚刚离开了深渊?
附录:URI 中可能同时存在多个过滤器。可以作为不同的参数,也可以作为单个参数的值列表。沿着“实现接口 X 和/或接口 Y 的所有类”或“实现接口 X 并在包 ABC 中的所有类”的思路思考(其中包也可以通过 URI 寻址http://example.org/api/v1/packages/a/b/c
)
ruby-on-rails - Rails 嵌套 URL 问题
我在 Rails 中遇到 RESTful URL 的问题。
我有 site.com/services 网址,我想在该类别下有子页面,就是这样:site.com/services/arquitecture、site.com/services/plumbing 等。
我在该类别下提供的页面是“静态”.rhtml 文件,我希望它们位于同一个控制器上。
有没有办法做到这一点?我尝试过嵌套资源,但我发现很难完全理解。
谢谢
.htaccess - 带有 .htaccess 的多个查询参数 RESTful URL
我想将以下 RESTful URL 用于我正在开发的网站。
谁能告诉我如何使用 .htaccess 实现这一目标?
奥斯卡
rest - 返回对象中项目总数的最佳 RESTful 方法是什么?
我正在为我参与的大型社交网络网站开发 REST API 服务。到目前为止,它运行良好。我可以发出GET
、POST
和请求来反对 URL 并影响我的数据PUT
。DELETE
但是,此数据是分页的(一次限制为 30 个结果)。
但是,通过我的 API 获取成员总数的最佳 RESTful 方式是什么?
目前,我向如下 URL 结构发出请求:
- /api/members —返回成员列表(如上所述,一次 30 个)
- /api/members/1 — 影响单个成员,取决于使用的请求方法
我的问题是:我将如何使用类似的 URL 结构来获取我的应用程序中的成员总数?显然,仅请求id
字段(类似于 Facebook 的 Graph API)并计算结果将是无效的,因为只会返回 30 个结果的一部分。
java - Spring MVC:正确注释 RESTful URI 的控制器方法,包括“;”
设计我的 RESTful API,我想使用以下 URI
例如
Spring MVC 中这种方法的适当注释是什么?下面这个可以吗?
如果这个没问题 - 有什么@MaskFormat("###-##-####")
用?