- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我理解为什么“REST 框架”供应商希望支持返回基于 Json 的表示和基于 XML 的表示,但为什么人们希望从同一个服务返回两者?
是不是因为您的客户端应用程序构建在一个没有可用的 Json 解析器的平台上?
是因为您希望界面得到更广泛的采用,因为您可以吸引更多人?
是不是因为您觉得它是所有 RESTful 接口(interface)都遵循的标准约定?
如果您同时交付:
您是否避免在 XML 中使用命名空间以使其与 Json 格式兼容?还是您的所有数据元素都只有一个命名空间?
您是否有某种标准化机制来将属性和元素映射 为某种一致的 Json 格式,或者您是否只是避免在 XML 中使用属性?
您是为每个表示创建不同的端点,还是使用内容协商来提供请求的格式?你有默认格式吗?
如果您在可编辑资源上使用缓存并使用不同的 URL,您如何确保当一个表示无效时其他表示也无效?
您觉得支持多种格式的好处值得付出努力吗?
所以主要原因似乎是偏好之一。一些开发人员更喜欢花括号,一些开发人员更喜欢尖括号。
有些人希望从 XML 迁移到 Json,因此需要同时支持两者以实现向后兼容性。
有些人想使用Json,但担心有些开发者害怕Json,所以他们都支持,以免得罪任何人。
在框架 XYZ 中开启该功能很容易,何乐而不为!
另一个有趣的建议原因是,JSON 可用于提供快速的脏数据摘要,而 XML 可用作语义丰富的完整表示。
最佳答案
与目前所说的完全不同的原因——
REST 接口(interface)是关于资源的,每个资源都有一个标识符,即 URL。仅仅因为您希望资源具有不同的序列化,无论是 XML、JSON、HTML 还是其他内容,我们仍然在描述 same 资源。
因此,我们使用“Accept” header 来确定客户端感兴趣的内容,而不是为 XML 和 JSON 提供不同的路径。在某些情况下,服务使用“Accept-Language” header 来确定他们应该为元数据使用什么语言。
如果我们为记录的不同序列化分配不同的标识符,那么对于语义网络,我们必须嵌入额外的信息来链接到描述“相同”对象的所有记录。
您可以在 Linked Data 下找到有关这些努力的更多信息。 ,尽管这通常是指在序列化时使用 RDF。
更新:关于链接到特定格式的讨论,我还建议人们考虑阅读 Functional Requirements for Bibliographic Records (又名 FRBR),它有一个概念模型,用于描述作为抽象“作品”的“书”与物理“项目”之间的关系,以及两者之间的层次。有一个bit of discussion FRBR 上的图书馆、信息和语义网络社区,包括它与数字对象的关系。
基本上,问题在于您可以在多个级别分配标识符(例如,资源,以及有关资源的元数据文本,或有关资源的元数据文本的序列化),并且每个有自己的用途。
您可能还会看到 OAI-ORE用于报告对象之间关系的规范,包括替代格式或语言。
关于xml - 为什么人们希望将 Json 和 XML 作为输出传递到他们的 REST 接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1649793/
对于我不断地用刽子手问题来打扰这个论坛,我深表歉意。我希望很快就能完成这件事。确实在这方面一直在努力。这是到目前为止我的代码: #include #include #include #defin
这篇文章是 this one 的延续. 我试图了解我是否是唯一一个错过并需要 .NET 泛型类型继承其泛型参数类型之一的能力的人。 面临的挑战是收集支持此功能的令人信服的理由,或者,要知道没有。 我给
我正在使用下面的代码设计一个 3 小时的 JavaScript 倒计时 var count = 10800; var counter = setInterval(timer, 1000); //1
我正在处理验证并放置一个 html 模式属性,并希望在不点击保存/提交按钮的情况下查看错误消息。当我在字段外单击时,它应该根据我的模式条件进行验证。 这是我的代码: Extra Credit Da
我有一个像这样的 mysql 表结构: id int primary key name varchar start_time float 数据可能是这样的: id name
我试图在桌面上保留一张带有描述的图片,然后在移动设备上希望图片在左边,描述在右边……更多的是尽可能让所有内容都在首屏。 我希望桌面上的 DIV 是: 一个一个 BBB 但是在手机上: A B A B
我通过 Stackoverflow 进行了搜索,发现很多人试图避免 CSS 列中的重叠,但实际上我被要求让文本和图像重叠。 更新: 更好的图像解释了我被要求做的事情,以及指向我正在使用的代码的链接。谢
我在我的框架中设置了几个协议(protocol)来处理资源。在其中一个协议(protocol)中,我设置了一个扩展来为 decode 函数提供默认实现。显示代码和发生的情况更简单(请参阅对 fatal
我想同时加载,或者在上面的图像之后立即加载。它会在图像和标题 div 在预加载器内旋转之前不断加载 - 不好!这是 HTML: ✕ Various inv
我目前正在开发一个小游戏。我使用 getKeyCode 来移动我的角色,但问题是我不希望你在按住按钮的情况下能够继续移动。无论如何,我是否可以使用 getKeyCode 仅在第一次单击时注册,然后在释
我需要设置 width 或 max-width 才能让 margin:auto 工作,对吗? Like in this jsFiddle . 问题是,段落宽度等于 max-width,因此文本 blo
您好,我在同一页面上有一个表单和一个 Paypal 订阅按钮。在重定向到 Paypal 付款之前,我想在单击提交表单(通过电子邮件发送给我)时订阅按钮。 > >
我想让用户在点击一个文本字段时感觉就像我们点击一个按钮,在释放按钮后它会在很短的时间内变成橙色,然后闪烁并再次变成它的第一种颜色。当我点击它时它运行良好但没有出现颜色闪烁。 布局文件 主要 Ac
我怎样才能让我的 MediaPlayer 继续播放,即使在手机锁定和屏幕关闭的情况下,我认为它可能必须做一些使其成为服务但不确定的事情。如果是这样,我该如何将其更改为服务,或者是否有更快更简单的修复方
有人可以帮助我理解内存泄漏的概念以及特定数据结构如何促进/防止它(例如链表、数组等)。前段时间我被两个不同的人教过两次——由于教学方法的不同,这让我有点困惑。 最佳答案 维基百科有一个 good de
我希望 HTML 表单在提交后不执行任何操作。 action="" 不好,因为它会导致页面重新加载。 基本上,我希望在按下按钮或有人在输入数据后点击 Enter 时调用 Ajax 函数。是的,我可以删
我正在执行一个程序 say A from another,首先是 fork-ing,然后是 execve()。现在的问题是我希望 A 使用我通常使用 LD_PRELOAD 来完成的库。我如何在 exe
我目前正在为我们公司测试 Autofac。 我们希望有以下规则: 如果接口(interface)只实现了一次,则使用 builder.RegisterAssemblyTypes 自动添加它(见下文)。
正如 Scott Meyers 和 Andrei Alexandrescu 在 this 中概述的那样文章 简单尝试实现双重检查锁定实现在 C++ 中特别是不安全的,并且通常在不使用内存屏障的多处理器
目前我有一些代码可以在点击时改变图像,但这段代码是在一个 php HTML 循环中所以事情变得棘手,点击一个开关会使每个故事的开关都激活,因为它是基于 CSS 运行的.如何让它们独立交换? $("
我是一名优秀的程序员,十分优秀!