我目前正在构建一个 REST API。当前所有 GET 方法都使用 JSON 作为响应格式。 POST 和 PUT 操作的最佳实践是什么?在请求正文中使用 JSON 还是纯 POST?我找不到任何关于此事的信息。
例如,我看到 Twitter 使用 POST:https://dev.twitter.com/docs/api/1/post/direct_messages/new https://dev.twitter.com/docs/api/1/post/direct_messages/new
使用 JSON 格式有什么好处?我从 github 获得的 API 控制器(已完成一半)需要 JSON。真的很想知道为什么我会选择使用它。
POST、PUT、GET 都是 HTTP 动词,它们本身并不表示传输数据的格式,因此没有 POST 格式。这意味着您可以按照您选择的任何方式对数据进行编码。
现在,您决定采用什么格式really更重要的是您的 API 通常如何使用。如果主要是从网络浏览器提交表单,那么使用表单字段编码可能是最合理的做法,因为它使客户端的交互变得更容易。
另一方面,如果您主要要从 AJAX 调用接收 JSON 数据,那么接收 JSON 格式可能有意义。如果您同时执行这两项操作,则没有任何理由不能接受以下数据:both格式。
要考虑的另一个方面是您将要来回传递的数据结构的复杂性。表单编码(也类似于查询字符串编码)是一种键值结构,而 JSON(或 XML)允许更丰富的数据结构。
最后,选择对服务器端和客户端来说最简单的方式(因为我假设您还将编写相关 API 的主要客户端使用者)。简单性是always优先于复杂性,直到您能够明确地证明更高的复杂性会给您带来可衡量的好处。
另外,我要提到的最后一件事是,REST 不仅仅是干净的 URL 或正确使用 HTTP 动词。这些方面确实只是锦上添花。 REST 架构背后的核心思想是超文本是应用程序状态的引擎 https://www.ietf.org/rfc/rfc2616.txt。通过简单地跟踪服务器响应中的 URL,优秀的客户端就可以了解所有可用的操作,并且不需要知道除基本 URL 之外的任何内容。其他一切都可以从中发现。将其与明确定义的内容类型相结合,您将拥有一个世界,其中许多客户端可以与许多服务器进行通信,所有服务器都使用相同的“语言”,并且客户端不需要知道anything关于基本 URL 和内容类型之外的服务器(反之亦然)。这就是 REST 的意义所在。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)