Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.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 将数据传递给REST服务:JSON或URL查询参数?_Php_Angular_Http - Fatal编程技术网

Php 将数据传递给REST服务:JSON或URL查询参数?

Php 将数据传递给REST服务:JSON或URL查询参数?,php,angular,http,Php,Angular,Http,向RESTful web服务传递参数的常用方法是URL: website.com/action.php?table=myTable&key=myKey&values=myValues 另一种方法是使用JSON: { "data": [ { "parameters": {"table":"myTable", "key":"myKey", "values":"myValues"} }, {

向RESTful web服务传递参数的常用方法是URL:

website.com/action.php?table=myTable&key=myKey&values=myValues
另一种方法是使用JSON:

{
  "data": 
     [
       {
         "parameters": {"table":"myTable", "key":"myKey", "values":"myValues"} 
       },
       {
         "content": {"data1":"dataVal1","data2":"dataVal2"} 
       }
     ]
}
这两种方法的优缺点是什么:

  • 我什么时候可以用一个来代替另一个
  • 每种方法的优点
  • 弱点
  • 性能差异

要使用REST检索值,必须使用
GET
请求。没有包含
GET
请求的请求主体,因此您唯一的选择是url

在REST服务中更改值时,通常使用
PUT
请求。此
PUT
请求的正文中应包含新的资源状态


所以这不是非此即彼的问题。放置某些请求参数的位置取决于您正在执行的操作类型以及参数的含义。

顺便说一句,URL中有一个“查询参数”。有很多框架使用JSON进行API通信;这并不少见。这感觉不像是一个问题,更像是一种咆哮,尤其是当你试图用正反两方面来证明自己的观点时,你会觉得这在一个问题的主体中是不合适的。@msanford很有趣。你知道我的意思,但谢谢你的纠正。再说一次,可能是因为通过URL传递参数的标准方式,所以定义是这样的?我不知道,只是一个想法。@Claies总是乐于学习在一个提供无尽帮助的网站上发布的正确方式。我会把赞成/反对的观点拿出来。“普通方式…”我会说这是不正确的,应该用“普通方式…”来表达。通过JSON传递信息至少也同样常见,对于POST请求可能更常见。