Hol*_*osa 27 rest json web-services http http-headers
在使用JSON资源构建RESTful/hypermedia API时,我似乎有两种选择来指定资源之间的超媒体关系.
将链接嵌入JSON文档的正文中.这里的问题是没有用于指定超链接的标准化语法,尽管我看到了许多努力:( HAL,Collection + JSON,JSON-LD,JSON Schema等等).
使用HTTP链接头.这是标准化的,因此这似乎比嵌入式链接更具优势.客户只是了解如何理解标准标题和瞧,超媒体的好处是实现的.
所以,特别是在处理JSON资源的上下文中,这是要走的路,为什么?
Wil*_*ung 14
使用超媒体JSON格式.虽然链接标题是标准的,但它们很难被采用.它们对于非超媒体的媒体格式更有效.但是既然你可以选择并且可以选择超媒体格式(不像PNG和JPG那样),你应该选择一个并继续前进.
所有JSON标准都在冒泡,直到一个或另一个成为"事实上的"标准.他们使用的越多,他们得到的"事实上"就越多.
在我看来,HAL是一个坚实的标准轨道,我会选择它.
但无论哪种方式,都可以选择超媒体格式.
小智 10
如果您希望您的链接由HTTP中介处理,那么您一定要使用链接标题.其中一个例子是Linked Cache Invalidation:
http://tools.ietf.org/html/draft-nottingham-linked-cache-inv-01
如果您只想公开指向客户的链接,最好将它们放在实体中,以便利用嵌套元素中的链接:
{
'item': [
{ 'name': 'fork', 'href': 'http://example.com/item/1' },
{ 'name': 'spoon', 'href': 'http://example.com/item/2' },
{ 'name': 'spork', 'href': 'http://example.com/item/3' }
],
'href': 'http://example.com/items'
}
Run Code Online (Sandbox Code Playgroud)
wik*_*000 10
如果需要,它们甚至可以包含一些JSON! http://tools.ietf.org/html/draft-nottingham-link-hint-00
此方法允许在所有响应中同时传递:
当然,资源表示可能包含以各种形式编码的链接,但使用链接头可以提供站点动态结构中最重要的部分.
是什么让这个解决方案明确吸引人的是恕我直言的"接受后"提示.
归档时间: |
|
查看次数: |
7927 次 |
最近记录: |