分层REST API与规范化REST API
首先,我想解释一下我编写的分层REST API与规范化REST API,rest,url,uri,Rest,Url,Uri,首先,我想解释一下我编写的分层restapi和规范化restapi的含义 分层RESTAPI 请求URL:可以使用具有多种内容类型的层次结构。(例如http://www.example.com/customers/12345/orders) 响应正文:可以包含所有请求的内容,而不忽略任何内容,包括其他相关数据类型(例如客户包含订单) e、 g.http://www.example.com/customers/12345 标准化RESTAPI 请求URL:禁止URL的层次结构。
分层restapi
和规范化restapi
的含义
- 分层RESTAPI
- 请求URL:可以使用具有多种内容类型的层次结构。(例如
)http://www.example.com/customers/12345/orders
- 响应正文:可以包含所有请求的内容,而不忽略任何内容,包括其他相关数据类型(例如
包含客户
)订单
- e、 g.
http://www.example.com/customers/12345
- e、 g.
- 请求URL:可以使用具有多种内容类型的层次结构。(例如
- 标准化RESTAPI
- 请求URL:禁止URL的层次结构。
- 不好
http://www.example.com/customers/12345/orders
http://www.example.com/customers/12345/orders/1
http://www.example.com/customers/12345/orders?accepted=true
- 嗯
http://www.example.com/customers
http://www.example.com/customers?firstName=John
http://www.example.com/customers/12345
http://www.example.com/orders/1
- 不好
- 响应正文:包含所请求内容类型的所有内容。如果其他类型是相关的,只返回它的ID。
- e、 g.
http://www.example.com/customers/12345
- e、 g.
- 请求URL:禁止URL的层次结构。
- 分层RESTAPI
- 专业人士
- 可以在单个请求中获得所有必需类型的内容(例如客户、订单、来自
)http://www.example.com/customers/12345
- 可以在单个请求中获得所有必需类型的内容(例如客户、订单、来自
- 缺点
- 如果数据的层次结构很深,那么响应可能是指数级的巨大和缓慢
- 循环引用可能发生
- 数据重复(例如,来自两个
和http://www.example.com/customers/12345
可以包含相同的http://www.example.com/stores/1
数据)订单
- 专业人士
- 标准化RESTAPI
- 专业人士
- 更快的响应(较小的负载,没有或很少来自数据源的连接,更少的业务逻辑)
- 通过标准化实现无数据重复
- 缺点
- 需要多个请求如果您需要多种类型的内容(例如,要从某个
检索所有客户
,至少需要客户按顺序提出两个请求)订单
- 需要多个请求如果您需要多种类型的内容(例如,要从某个
- 专业人士
- 是否有
和分层REST API
的术语规范化REST API
- 哪一个更适合RESTAPI指南?我也有其他选择
这两种方法是否“符合RESTAPI指南”。是的——更准确地说,它们之所以有效,是因为HTML是一种通用的标准化媒体类型,有关于如何引用CSS的规则;每个人都以同样的方式理解这些规则。我明白了。那一定是偏好的问题了。谢谢。相关问题:
{
"name": "John Doe",
"orders": [{
"id": 1,
"price": 10,
"delivered": true
}, {
"id": 2,
"price": 11,
"delivered": false
}
]
}
{
"name": "John Doe",
"orderIds": [1, 2]
}