复合还是侧载?
Composite or Sideloading?
我对构建 API 比较陌生,现在已经几次遇到以下两个术语,但有点困惑。我希望有人能用一些我在维基百科上什至找不到的定义来直接告诉我。我不确定它们是否可以可靠地互换使用而不会让人们感到不安,或者这是否取决于你与谁交谈。
旁加载
可选择在响应中包含其他相关资源的能力
例如。 /accounts?include=transactions
将在我的 /accounts
资源响应中包含 transactions
资源?
这实际上意味着我们通过将资源移出到它们自己的消息部分,eg.instead of
来避免响应中的资源重复
{ "orders": [ {
"id": "101",
"product": { "id": "2000", "desc": "blah", "price": "100.0" }
"id": "102",
"product": { "id": "2000", "desc": "blah", "price": "100.0" }
我们会:
{ "orders": [ {
"id": "101",
"product": { "id": "2000" }
"id": "102",
"product": { "id": "2000" }
],
"products": [
{ "id": "2000", "desc": "blah", "price": "100.0" }
复合文档
- 仅仅意味着您在资源响应中混合了相关资源(也可以单独存在),例如。
accounts
和 transactions
资源可以单独请求,也可以合并到同一个 复合 文档中 ??
我从来没有遇到过我认为是侧载或复合的正式定义,我认为您可以根据需要定义它,前提是它与您的资源建模方式一致。
我无法想象人们会对这些术语感到不安。基本前提是合理的,其他一切都只是语义和实现:)。也就是说,让您的 API 对象模型对客户端而言相对纯净和实用是个好主意。
因此,如果它最有可能以嵌套产品方式使用,而这就是 API 自然看起来的样子,那么
的重复
{ "orders": [ {
"id": "101",
"product": { "id": "2000", "desc": "blah", "price": "100.0" }
"id": "102",
"product": { "id": "2000", "desc": "blah", "price": "100.0" }
可能比
添加的间接问题更小
{ "orders": [ {
"id": "101",
"product": { "id": "2000" }
"id": "102",
"product": { "id": "2000" }
],
"products": [
{ "id": "2000", "desc": "blah", "price": "100.0" }
我对构建 API 比较陌生,现在已经几次遇到以下两个术语,但有点困惑。我希望有人能用一些我在维基百科上什至找不到的定义来直接告诉我。我不确定它们是否可以可靠地互换使用而不会让人们感到不安,或者这是否取决于你与谁交谈。
旁加载
可选择在响应中包含其他相关资源的能力
例如。/accounts?include=transactions
将在我的/accounts
资源响应中包含transactions
资源?这实际上意味着我们通过将资源移出到它们自己的消息部分,eg.instead of
来避免响应中的资源重复{ "orders": [ { "id": "101", "product": { "id": "2000", "desc": "blah", "price": "100.0" } "id": "102", "product": { "id": "2000", "desc": "blah", "price": "100.0" }
我们会:
{ "orders": [ { "id": "101", "product": { "id": "2000" } "id": "102", "product": { "id": "2000" } ], "products": [ { "id": "2000", "desc": "blah", "price": "100.0" }
复合文档
- 仅仅意味着您在资源响应中混合了相关资源(也可以单独存在),例如。
accounts
和transactions
资源可以单独请求,也可以合并到同一个 复合 文档中 ??
我从来没有遇到过我认为是侧载或复合的正式定义,我认为您可以根据需要定义它,前提是它与您的资源建模方式一致。
我无法想象人们会对这些术语感到不安。基本前提是合理的,其他一切都只是语义和实现:)。也就是说,让您的 API 对象模型对客户端而言相对纯净和实用是个好主意。
因此,如果它最有可能以嵌套产品方式使用,而这就是 API 自然看起来的样子,那么
的重复{ "orders": [ {
"id": "101",
"product": { "id": "2000", "desc": "blah", "price": "100.0" }
"id": "102",
"product": { "id": "2000", "desc": "blah", "price": "100.0" }
可能比
添加的间接问题更小 { "orders": [ {
"id": "101",
"product": { "id": "2000" }
"id": "102",
"product": { "id": "2000" }
],
"products": [
{ "id": "2000", "desc": "blah", "price": "100.0" }