外部数组是一个有效的REST API的JSON?

当在Node.js webb应用程序中使用MongoDB和MongoDB时,我可以在集合上运行.find()来获取其所有文档。 结果是一个mongodb游标。 然后使用游标.toArray()方法将此游标转换为数组。

 [ { _id: "53ea101656cb0c0407306405", key: "value", ... }, { _id: "53ea101656cb0c0407306405", key: "value", ... }, ... ] 

但是,这是一个有效的JSON输出REST API?或者我应该将外部数组转换为对象? 也许没关系?

这是有效的 JSON,假设你把你的钥匙引号。 REST没有指定JSON响应必须使用的格式,因此请为您的应用程序做一些正确的操作。

正如其他人所说的那样,这违反了没有任何规定,是完全没有问题的。

但是,如果您有过度复杂的风险,请注意,如果您希望将元数据添加到有关此集合的响应中,则可能需要将该数组包装到一个对象中。 例如,如果您想在响应体中添加一些超媒体链接(特别是与本集合有关的自我,或创build新对象或分页),则不太可能适合arrays中的任何位置。 您可以将链接放在标题中,当然,这取决于您。

但总的来说,您可能希望将一些元数据放在响应主体中,因此请牢记这一点,并确保尽可能合理地尽可能避免这种响应。

数组很好,在获取集合时通常是首选。 当为一个集合GET返回一个数组时,大多数JS REST库(如Backbone)将会开箱即用,并且需要一些额外的代码才能提取数组。