gpt4 book ai didi

php - REST API : Request body as JSON or plain POST data?

转载 作者:IT老高 更新时间:2023-10-28 12:52:52 31 4
gpt4 key购买 nike

我目前正在构建一个 REST API。目前所有 GET 方法都使用 JSON 作为响应格式。 POST 和 PUT 操作的最佳实践是什么?在请求正文或普通 POST 中使用 JSON?我找不到关于这件事的任何信息。

我看到 Twitter 使用 POST 例如: https://dev.twitter.com/docs/api/1/post/direct_messages/new

使用 JSON 格式有什么好处?我从 github 获得的 API Controller (已完成一半)需要 JSON。真的很想知道为什么我会选择使用它。

最佳答案

POST、PUT、GET 都是 HTTP 动词,它们本身并不表示传输数据的格式,因此没有 POST 格式。这意味着您可以选择任何方式对数据进行编码。

现在,您决定采用什么格式应该真的更多地取决于您的 API 通常如何使用。如果它将主要处理来自网络浏览器的表单提交,那么使用表单字段编码可能是最合理的做法,因为它使客户端的交互更容易。

另一方面,如果您主要从 AJAX 调用接收 JSON 数据,那么接收 JSON 格式可能是有意义的。如果您将两者都做,那么您没有任何理由不能接受两种格式的数据。

要考虑的另一个方面是您将来回传递的数据结构的复杂性。表单编码(也类似于查询字符串编码)是一种键值结构,而 JSON(或 XML)允许更丰富的数据结构。

最后,无论您在服务器端还是在客户端,都选择最简单的方法(因为我假设您还将编写相关 API 的主要客户端使用者)。简单总是优先于复杂性,直到您可以明确地证明更多的复杂性会给您带来可衡量的好处。

另外,我要提到的最后一件事是 REST 不仅仅是关于干净的 URL 或正确使用 HTTP 动词。这些方面真的只是锦上添花。 REST 架构背后的核心思想是 Hypertext is the engine of application state 。通过简单地跟踪服务器响应中的 URL,一个好的客户端可以了解所有可用的操作,并且只需要知道基本 URL 之外的任何内容。其他一切都可以从中发现。将其与定义明确的内容类型相结合,您将拥有一个世界,其中许多客户端可以与许多服务器进行通信,所有服务器都使用相同的“语言”,并且客户端不需要了解任何关于除了基本 URL 和内容类型之外的服务器(反之亦然)。这就是 REST 的全部意义所在。

关于php - REST API : Request body as JSON or plain POST data?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9772933/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com