相关疑难解决方法(0)

REST媒体类型爆炸

在我尝试使用REST架构风格重新设计现有应用程序时,我遇到了一个问题,我想将其称为"Mediatype Explosion".但是,我不确定这是否真的是REST的问题或固有的好处.要解释我的意思,请参考以下示例

我们的应用程序的一小部分看起来像:

收集-collections-的 - >集合-的-物品─>项

即顶级是集合的集合,这些集合中的每一个都是项目的集合.

此外,每个项目都有8个属性,可以单独读取和写入.尝试将上述层次结构公开为RESTful资源会让我看到以下媒体类型:

application/vnd.mycompany.collection-of-collections+xml
application/vnd.mycompany.collection-of-items+xml
application/vnd.mycompany.item+xml
Run Code Online (Sandbox Code Playgroud)

此外,由于每个项目具有8个可以单独读取和写入的属性,因此将产生另外8种媒体类型.例如,项目的"值"属性的一种这样的媒体类型将是:

application/vnd.mycompany.item_value+xml
Run Code Online (Sandbox Code Playgroud)

正如我之前提到的,这只是我们应用程序的一小部分,我希望有几个不同的集合和项目需要以这种方式公开.

我的问题是:

  1. 我是否因为拥有大量媒体类型而做错了什么?
  2. 避免媒体类型爆炸的替代设计方法是什么?

我也知道上面的设计是高度精细的,特别是暴露项目的各个属性,并为每个属性分别设置媒体类型.然而,使其粗糙意味着我将最终通过线路传输不必要的数据,而实际上客户端只需要读取或写入项目的单个属性.你会如何处理这样的设计问题?

rest

45
推荐指数
3
解决办法
1万
查看次数

RESTful URL的好处

有什么好处

 http://www.example.com/app/servlet/cat1/cat2/item 
Run Code Online (Sandbox Code Playgroud)

网址

过度

 http://www.example.com/app/servlet?catid=12345
Run Code Online (Sandbox Code Playgroud)

网址

如果我们使用第一个URL会有任何问题,因为最初我们使用的是第一个URL并更改为第二个URL.这是在网站上不断变化的内容的背景下.这里的类别数量可以是无限的.

rest

6
推荐指数
1
解决办法
560
查看次数

标签 统计

rest ×2