问题标签 [collection-json]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
335 浏览

schema - 为什么collection+json使用匿名对象而不是键值对

我正在尝试找到一个可用于不同场景的数据模式,到目前为止我发现的有希望的格式是 collection+json 格式(http://amundsen.com/media-types/collection/)。

到目前为止,它有很多我需要的功能并且非常灵活,但是我不明白为什么它使用匿名对象(例如:){"name" : "full-name", "value" : "J. Doe", "prompt" : "Full Name"},而不是简单的键值对。(例如:“全名”:“J. Doe”,)。

我知道如何传输更多信息,如提示等,但解析速度要慢得多,并且很难为其创建客户端,因为他必须通过在数组中搜索来访问字段。将数据绑定到特定视图时,必须知道存在哪些字段,因此必须再次将匿名对象转换为键值映射。

那么使用这个匿名对象而不是键值映射是否有真正的优势?

0 投票
1 回答
1244 浏览

json - 嵌套集合+JSON 超媒体类型示例

Collection+JSON的示例不显示嵌套集合的示例。任何人都可以指出使用嵌套集合的 Collection+JSON 示例或描述他们成功的经验。

例如,这是否适用于链接到两个子集合的顶级入口点:

0 投票
2 回答
171 浏览

node.js - 链接到其他集合项目的集合+JSON 项目

我正在 nodejs 中做一个 REST Web 服务器,我正在考虑使用Collection+JSON作为超媒体类型来实现它。

但是我不明白是否可以在集合中表示 1 到 n 关系。因此,例如,如果我有一个集合 Basket,可以使 Basket 中的项目指向其他已定义集合的项目吗?

0 投票
3 回答
798 浏览

c# - 在 Web Api 项目中读取 CollectionJson 内容

我有一个与Conference API项目类似(几乎相同)的项目,该项目采用与上述项目类似的方法来返回 CollectionJson 内容。我很难设置 ReadDocument 的 Collection 属性(第 30 行),因为它没有任何设置器。我可以通过进行以下更改来绕过这个问题

尽管上面的代码可以编译并在一定程度上解决了问题,但我又会遇到另一个问题,即无法在我的控制器单元测试中使用 JsonCollection 内容。考虑以下单元测试代码片段:

由于我没有设置 ReadDocument 的集合属性,所以 readDocument 始终为空,我无法读取其内容。WEB API项目中如何在客户端异步读取JsonCollection的内容?

要清楚地了解该方法,请查看Conference Web Api作者博客

0 投票
1 回答
70 浏览

json - 项目具有关联的集合+ json

我正在考虑在项目中使用collection+json媒体类型。但是,在阅读了文档后,我无法弄清楚items与之相关的内容是什么。

鉴于此items列表,如果我还需要列出,我该怎么办,i。例如,您将与产品一起获得的礼物清单?items我应该在每个列表中添加另一个列表item吗?

0 投票
1 回答
96 浏览

jsonschema - 如何对集合 + json 对象进行 json 模式验证?

我想使用在同一个数组下具有不同格式的模式来验证 collection+json 对象。例如:

在这里,该值是精确模式之一 (\w+:\d+:\d+)、精确 ([\w\d]+) 之一和精确布尔值之一。没有其他变化。

json 模式中是否有任何方法可以根据这些要求检查此列表?

0 投票
1 回答
490 浏览

json-ld - 由 API 驱动的 HATEOAS 和表单

我正在尝试将 HATEOAS 应用于现有应用程序,但在对由 API 响应驱动的表单输入进行建模时遇到了麻烦。

该应用程序允许搜索和预订两个地方之间的联系。第一个端点允许搜索连接GET /connections?from={lat,lon}&to={lat,lon}&departure={dateTime}并返回以下有效负载(响应正文)。

为了订购其中一个连接,客户端需要POST /orders使用以下有效负载之一(请求正文)发出请求:

  • 需要电子邮件 /li>
  • 需要电子邮件和航班号(承运人仅处理机场连接) /li>
  • 需要电话号码 /li>

有效载荷是不同的,因为不同的连接可能由不同的运营商处理,并且它们中的每一个都可能需要提供一些不同的信息集。我想通知 API 客户端,创建订单时需要哪些字段。我的问题是如何使用 HATEOAS 做到这一点?

我检查了不同的规格,这是我从阅读规格中可以看出的:

  1. HAL & HAL-FORMS有,"_templates"但是,模板本身没有 URI。假定它在 self 链接上运行,在我的情况下是/connections...而不是/orders
  2. JSON-LD我找不到有关表单或模板支持的任何信息。
  3. JSON-API我找不到任何关于表单或模板支持的信息。
  4. Collection+JSON每个文档最多有一个"template",因此假定集合的所有元素都具有相同的字段,而在我的应用程序中并非如此。
  5. Siren看起来"actions"适合我的用例,但该项目似乎已死,并且没有许多主要语言的支持库。
  6. CPHL该项目似乎已死,文档很少,也没有库。
  7. Ion对表单有很好的支持,但我找不到任何支持库。看起来它现在只是一个规范。

像 API 驱动的表单这样的常见问题是否仍然无法通过规范和工具解决?