Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java RESTURL通常是如何定义的?_Java_Rest - Fatal编程技术网

Java RESTURL通常是如何定义的?

Java RESTURL通常是如何定义的?,java,rest,Java,Rest,我知道REST的主要原则之一是为每个资源创建一个唯一的URL 我的问题是,这些URL通常是如何定义的?REST URL的定义与孩子的命名方式相同:有些人使用姓氏(现有的公司或项目标准),有些人查看婴儿名字簿(标准文档?哈!),有些人向朋友征求建议(朋友、邮件列表等),有些人推迟了决定,使用了默认的名字,比如“Baby Boy Smith”,后来不得不经历繁琐的重命名过程(301重定向等),有些人在分娩前拒绝告诉任何人他们选择了什么名字 简言之,这并不是一个典型的例子。标准表单生成的URL(带有?

我知道REST的主要原则之一是为每个资源创建一个唯一的URL


我的问题是,这些URL通常是如何定义的?

REST URL的定义与孩子的命名方式相同:有些人使用姓氏(现有的公司或项目标准),有些人查看婴儿名字簿(标准文档?哈!),有些人向朋友征求建议(朋友、邮件列表等),有些人推迟了决定,使用了默认的名字,比如“Baby Boy Smith”,后来不得不经历繁琐的重命名过程(301重定向等),有些人在分娩前拒绝告诉任何人他们选择了什么名字

简言之,这并不是一个典型的例子。标准表单生成的URL(带有?name=value&name=value参数)是完全有效的REST URL。许多人喜欢将这些参数编码到斜线路径中,比如或使用隐式位置名称。但是,您绝不局限于这些格式。

无论您喜欢什么。 URL可以是完全不透明的,或者URL的路径可以传递所需的资源类型

您可能希望遵循HATEOAS原则,并将对这些url的访问作为您所传递的超文本的一部分,因此客户端只需要知道如何导航,而不需要知道如何构造特定的url

也就是说,您可以从根URL开始,并通过导航使所有其他资源都可以访问。
不要将自己绑定到特定的URL模板中。这只会妨碍您扩展和改进REST API的能力。

这由您自己决定。你应该让它有意义,并尽可能坚持下去

示例:

/users/john.doe 
获取用户名和密码

/users
用于收集用户

您应该利用URL的层次性来执行以下操作:

/users/john.doe/documents

参考用户文档的列表。你应该非常小心你的结构。仔细考虑设计的潜在后果,因为资源URL是服务最重要的设计决策之一。

REST是构建分布式系统的一种体系结构样式。这通常意味着您有一个客户端应用程序和一个服务器应用程序。当客户端应用程序需要访问服务器上的某些信息时,请创建一个URL,您可以使用该URL来标识该信息


URL的结构对于客户端应用程序来说并不重要,因此无论您使用什么服务器框架,都要使用最简单的结构。

“URL”被定义为“通用资源定位器”,因此“唯一URL”将是“唯一通用资源定位器”。如果您尊重超媒体约束,则“设计”大多数资源URL与客户端的功能无关。服务器应该能够在不破坏客户端的情况下随时更改它们。