|
|
1
19
我认为你的解释基本上涵盖了这一点。URI是不透明的标识符,在大多数情况下,不应在用户代理用来访问应用程序的书签URI之外进行通信。 至于记录,这个问题已经做了好几次了。您可以记录您的媒体类型,以及它包含的超链接控件(链接和表单)和交互模型(如果您愿意的话)(请参阅atompub)。 如果您记录了URI或者如何构建它们,那么您就错了。 |
|
|
2
8
我觉得你的解释是正确的。我相信菲尔丁的约束条件可以实际应用。 我真的很想看到有人发布一些关于如何记录REST接口的好例子。有这么多不好的例子,有一些有效的指向用户会很有价值。 |
|
|
3
5
我一直在寻找一个遵循hateoas编写的API的好例子,并且很难找到一个(我发现SuncloudAPI和Atompub都很难应用于“正常”的API情况)。所以我尝试在我的博客上做一个现实的例子,遵循罗伊·菲尔丁的建议,这意味着一个适当的REST实现。我发现很难想出这个例子,尽管它在原则上相当简单(只是在使用API而不是网页时会混淆)。我理解罗伊的观点并同意,这只是一种心态上的转变,即要正确地为API实现。 |
|
|
4
4
对于如何构建URI给出指令的一个例外是,允许在超文本响应中发送一个URI模板,其中的字段将由客户端自动替换,并使用超文本中的其他字段。这通常不会节省太多带宽,尽管gzip压缩可以很好地处理URI的重复部分,不必为此烦恼。 关于休息和相关仇恨的一些好讨论: |
|
|
5
4
对于那些感兴趣的人,我在实践中发现了一个关于hateoas的详细例子。 Sun Cloud API . |
|
|
6
4
大多数人都会出错的是(至少我认为)在其他世界,你没有记录你的“REST接口”,你记录的是一种媒体类型,独立于你的服务器或服务。 |
|
|
7
1
完全正确。另外,我还要注意的是,只要模式来自从服务器接收到的文档(OpenSearch是一个合适的例子),那么URI模板在RESTful应用程序中就非常好。对于URI模板,您将记录它们的使用位置以及模板中预期的占位符是什么,而不是模板本身。与沃恩弗里登所说的稍有不同,这也不例外。 例如,在我的工作中,我们有一个内部域管理系统,服务文档指定了两个URI模板:一个用于为域资源生成最佳猜测URI,另一个用于构建用于查询域可用性的URI。仍然可以通过域集合翻页来确定给定域的URI是什么,但是考虑到它所管理的域的数量巨大,这对客户机来说是不可行的,因此给他们一种猜测域资源的URI可能是什么的方法是一个巨大的胜利,因为从客户机的角度来看,实现起来很容易。以及服务器的带宽。 关于您的问题:我们的规范性文档是公开的资源,各种方法对这些资源的影响,使用的表示媒体类型及其模式,以及这些表示中的URI指向哪种资源。 我们还包括非规范性(信息性)文档,该文档附带了一个免责声明,即不要对文档中提到的URI进行过多的阅读,该声明给出了典型的客户机-服务器交互示例。这就把相当抽象的规范性文件具体化了。 |
|
|
8
1
我认为,在过去的几年中,技术人员已经开始接受资源的概念,以及什么是真正的或不是休息的。 根据Richardson成熟度模型,有4个级别(0-3)定义了API的RESTful程度,3表示真正的RESTful API,正如Roy Fielding所预期的那样。 级别0是当您有一个入口点URI时,就像SOAP。 级别1意味着API能够区分不同的资源,并且有多个入口点——仍然有肥皂味。 级别2主要是使用http动词-get、post、delete。这就是休息真正进入画面的层次。 在第3级,您开始使用超媒体控件来创建API 真正地 宁静的 建议的进一步阅读链接: |
|
|
9
0
让我们假设
|