Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.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
数据的语义是REST的组成部分吗?_Rest_Semantics_Representation - Fatal编程技术网

数据的语义是REST的组成部分吗?

数据的语义是REST的组成部分吗?,rest,semantics,representation,Rest,Semantics,Representation,这是对一个问题的跟进,该问题要求 正如您从对我的回答的评论中所看到的,我们就资源的最佳媒体表现形式进行了一次小的争论。我们通过电子邮件进一步讨论了这个问题 Darrel和mine对REST的理解之间的主要区别在于数据的语义是否是RESTAPI的一部分 Darrel相信(我对他的话的解释是:-)数据的语义是RESTAPI的一个重要部分,因此,选择的媒体表示应该反映它。因此,一个合适的REST API应该选择: 一个像ATOM这样的知名媒体来表示数据,以便尽可能多的客户机能够本地理解资源的语义 特

这是对一个问题的跟进,该问题要求

正如您从对我的回答的评论中所看到的,我们就资源的最佳媒体表现形式进行了一次小的争论。我们通过电子邮件进一步讨论了这个问题

Darrel和mine对REST的理解之间的主要区别在于数据的语义是否是RESTAPI的一部分

Darrel相信(我对他的话的解释是:-)数据的语义是RESTAPI的一个重要部分,因此,选择的媒体表示应该反映它。因此,一个合适的REST API应该选择:

  • 一个像ATOM这样的知名媒体来表示数据,以便尽可能多的客户机能够本地理解资源的语义
  • 特定于应用程序的媒体类型,如application/vdn.mycomany.mymedia,并希望客户端理解此媒体类型,以便能够使用数据资源。 Application/xml不是一个好的资源表示,因为它不表示媒体类型中的语义,但需要客户机了解更多关于语义的信息
一、 另一方面,相信RESTAPI是与实际数据表示分离的一层。API公开的媒体类型只是传输资源数据的容器。数据的实际语义是分开处理的。因此,不理解数据的客户机仍然可以使用RESTAPI。Application/xml是一种非常好的数据表示,因为它允许理解模式的客户机紧密耦合,但仍然允许不理解模式的客户机对资源进行一些基本处理

因此,问题是:数据语义是RESTAPI的一部分吗?我们是否应该只为资源表示选择媒体类型,以实际表示数据的语义


如果人们在他们的答案中贴上一些引文,我会很感激,最好是来自罗伊人本人。:-)

我不认为有必要对此过于迂腐。一个资源可以公开多个表示;每个都有自己的语义(甚至还有多个语义维度)。如果一个表示没有提供特定用例所需的语义,则公开一个提供语义的表示

因此,一个没有 了解数据,仍然可以消费 restapi

我不确定这是一个很好的试金石测试什么是或不是一个体面的代表。一个可以使用文档但却不能很好地理解文档来处理它的客户机有什么好处?我想我不明白“资源的基本处理”是如何使application/xml成为比任意的1和0更好的选择的


因为你要的是推荐人。我当然可以让一台机器来显示这些位图,但如果我不了解底层的社交网络图,那又有什么用呢?将表示形式更改为application/xml会允许天真的客户端从中提取位图中不包含的其他含义吗?没有。

我不认为有必要对此过于迂腐。一个资源可以公开多个表示;每个都有自己的语义(甚至还有多个语义维度)。如果一个表示没有提供特定用例所需的语义,则公开一个提供语义的表示

因此,一个没有 了解数据,仍然可以消费 restapi

我不确定这是一个很好的试金石测试什么是或不是一个体面的代表。一个可以使用文档但却不能很好地理解文档来处理它的客户机有什么好处?我想我不明白“资源的基本处理”是如何使application/xml成为比任意的1和0更好的选择的


因为你要的是推荐人。我当然可以让一台机器来显示这些位图,但如果我不了解底层的社交网络图,那又有什么用呢?将表示形式更改为application/xml会允许天真的客户端从中提取位图中不包含的其他含义吗?否。

请查看Mark Baker提供的一组幻灯片,以了解有关应用程序/xml不满足“自描述”约束的更多解释。您还可以阅读他的博客上的许多帖子,包括一篇他继续解释为什么application/xml+名称空间不等同于媒体类型的文章

查看Mark Baker提供的一组幻灯片,了解有关应用程序/xml不满足“自描述”约束的更多解释。您还可以阅读他的博客上的许多帖子,包括一篇他继续解释为什么application/xml+名称空间不等同于媒体类型的文章

让我们从头开始:媒体类型为客户端提供了一种格式,它可以用来决定下一步要做什么。如果没有html页面,浏览器就没有链接。如果没有html呈现程序,浏览器将无法呈现页面,并且不知道该做什么

如果没有媒体类型,客户端就不知道是否能够对字节流执行任何操作。事实上,当客户机收到指定application/xml的头时,除了获得xml解析器之外,它不知道该做什么

因此,真正的问题是,客户机是否能够在不查看消息内部的情况下根据http消息做出决策,还是应该在消息内部进行查看(或者更糟糕的是,首先解析消息)以知道该做什么

缺少媒体类型意味着您的客户机必须进行额外的窥视工作,或者更糟糕的是,必须先处理实体本身,然后才能做出决定,无论是渲染还是处理。现在,您必须为可能要处理的每种格式添加许多自定义行为,并且在处理过程中会失去一些耦合

它也是一个http基础,中间层