Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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 JSON数据到web服务-如何定义预期的JSON数据_Php_Json_Web Services_Rest - Fatal编程技术网

Php JSON数据到web服务-如何定义预期的JSON数据

Php JSON数据到web服务-如何定义预期的JSON数据,php,json,web-services,rest,Php,Json,Web Services,Rest,我正在用PHP构建一个RESTful web服务,它接受JSON作为其负载 . 现在,我的问题是,我如何准确地向用户描述JSON请求的格式?我是JSON新手,我不认为我掌握了100% 其他用户系统是否会使用我需要的键值对创建一个数据结构(如数组),用JSON编码并将其发送到我的web服务 我真的要给他们一份阵列所需外观的副本吗? 谢谢 遵循REST的指导原则,您从API用户处获得的输入应该是URL的一部分(对于get请求;不更新数据,即http://example.com/api/doc/124

我正在用PHP构建一个RESTful web服务,它接受JSON作为其负载 . 现在,我的问题是,我如何准确地向用户描述JSON请求的格式?我是JSON新手,我不认为我掌握了100%

其他用户系统是否会使用我需要的键值对创建一个数据结构(如数组),用JSON编码并将其发送到我的web服务

我真的要给他们一份阵列所需外观的副本吗?
谢谢

遵循REST的指导原则,您从API用户处获得的输入应该是URL的一部分(对于get请求;不更新数据,即
http://example.com/api/doc/1243
),或者应该是POST变量(在HTTP请求主体中发送到同一URL)

因此,对于文档,您只需指出端点URL(
http://example.com/api/doc/1243
),他们需要使用POST的事实,以及变量是什么(即
标题
正文
作者
,等等)。然后用户将根据自己的意愿形成适当的HTTP请求,在您的服务器端,因为您使用的是PHP,所以您将从
$\u POST
数组中提取他们的变量(即
$\u POST['title']
$\u POST['body']
等)。

是使用JSON作为负载的restful api的一个很好的例子


您还将了解如何记录API。

REST服务输出JSON编码的数据是很常见的;您真的将输入作为JSON编码的(而不是标准的GET查询参数或POST数据值)?最常见的是什么?如果POST值是标准,那么我将使用它。该服务将接受许多产品代码/数量。如何通过POST传递这些数据?类似于:product_1=item1&product_1_数量=2&product_2=item2&product_2_数量=5?对于更新数据,是的,POST是常见的,并且是RESTful方法所必需的;请参阅我的答案以获得完整解释可能的重复-您根据Json模式进行验证,请参阅POST数据实际上不必是查询字符串。发布JSON编码的数据是完全有效的——发布数据的格式是使用传出请求的“Content Type”头定义的,该头默认为“application/x-www-form-urlencoded”,但可以是任何内容。如果您正在存储JSON数据,那么通过POST接受JSON数据对我来说似乎是合理的。谢谢-非常好的回答。例如,对于购物车,如何在查询字符串中传递产品(因为可能有很多产品?)。您是否只需执行“产品1=测试&产品1=数量=4&产品2=测试2&产品2=数量=9”等操作?对于向购物车添加产品,您可以这样组织。或者,让最终用户调用“添加到购物车”“方法多次,每种产品一次:端点
/api/cart/1243/add
,调用数据
product\u id
quantity
,但需要调用多次。谢谢-这太完美了。这是一个很好的例子。