Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php RESTAPI:请求主体是JSON还是纯POST数据?_Php_Json_Api_Rest_Post - Fatal编程技术网

Php RESTAPI:请求主体是JSON还是纯POST数据?

Php RESTAPI:请求主体是JSON还是纯POST数据?,php,json,api,rest,post,Php,Json,Api,Rest,Post,我目前正在构建一个RESTAPI。所有GET方法当前都使用JSON作为响应格式。POST和PUT操作的最佳实践是什么?在请求正文或普通帖子中使用JSON?我找不到关于这件事的任何消息 我看到Twitter使用POST,例如: 使用JSON格式有什么好处?我从github获得的API控制器(完成了一半)需要JSON。真想知道为什么我会选择使用它。这取决于您想要交换的数据。如果它是一个复杂的结构,您需要以结构化的方式(例如XML或JSON)发送它。在JavaWeb应用程序中,json更轻量级,因此

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

我看到Twitter使用POST,例如:


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

这取决于您想要交换的数据。如果它是一个复杂的结构,您需要以结构化的方式(例如XML或JSON)发送它。在JavaWeb应用程序中,json更轻量级,因此优于XML


如果要从表单发送一些字段,也可以使用“application/x-www-urlformencoded”类型。

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

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

另一方面,如果主要是从AJAX调用接收JSON数据,那么接收JSON格式可能是有意义的。如果同时使用这两种格式,则没有任何理由不能接受两种格式的数据

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

最后,选择对服务器端和客户端都最简单的方法(因为我假设您也将编写相关API的主要客户端使用者)。简单总是比复杂更受欢迎的,直到你能明确地表明,更复杂的东西会给你带来可衡量的好处


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

我想不出比这更清楚的答案了。我会考虑对我来说最容易的事情。可能是JSON,因为它与本机javascript兼容。谢谢你抽出时间!