IMB*_*IMB 17 php api rest json
我一直在阅读一些REST教程,其中一些人说为了将数据发送到其他API,您应该将数据作为数组发送,如下所示:
$data = array('foo' => 'bar');
$rest->post($data);
Run Code Online (Sandbox Code Playgroud)
然后还有其他人说你应该像这样发送JSON数据:
$data = array('foo' => 'bar');
$data = json_encode($data);
$rest->post($data);
Run Code Online (Sandbox Code Playgroud)
不确定是否有这样做的标准方法,或者如果没有问题,但在设计API时通常建议采用什么?
编辑:似乎有混乱.为了澄清我同意JSON应该用于客户端消费,但这个问题是关于SERVER消费.SERVER是否应接受来自其客户端的JSON或POST数据?
如果您是创建RESTful API的人,意味着您的应用程序是服务器并且正在接受请求,那么您的问题似乎令人困惑.您的申请不会发送任何POST数据; 客户将向POST您发送数据.
话虽如此,拥有一个可以接受JSON编码请求的API是可能的,但实际上只对非常小的场景有用.绝大多数客户将以application/x-www-form-urlencoded格式将数据发布到您的API .PHP会在幕后为您处理此问题,并将数据公开为$_POST超全局.
如果您正在讨论响应 POST请求以及您应该使用哪种格式,那么这取决于客户端希望您将其发送到何种格式.客户端将在Accept标头中指定此格式,或者某些API允许它在URL中指定(例如foo.com/some/thing/123.json或foo.com/some/thing/123/json).客户端不需要告诉您的应用程序它想要什么格式,因此您可以选择合理的默认值.现在大多数API都会使用JSON.
我从未听说过理解序列化PHP数组格式的API,所以我不知道你一直在阅读什么资源,但我很确定你误解了他们的建议.