Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.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请求像RPC一样对用户更友好?_Php_Api_Rest_Rpc - Fatal编程技术网

Php 如何使REST请求像RPC一样对用户更友好?

Php 如何使REST请求像RPC一样对用户更友好?,php,api,rest,rpc,Php,Api,Rest,Rpc,我一直在高度考虑创建REST服务而不是RPC,但在我看来,与RPC服务相比,客户端/用户必须编写大量代码才能实现同样的效果。此外,实现REST服务需要用户了解一些有关REST的基本知识。要用PHP进行说明,请执行以下操作: 休息 要发送GET、POST、PUT、DELETE请求,用户必须使用CURL发送他的请求 当然,这需要他的服务器启用CURL,这对于某些共享主机来说并不好 除了用户需要发送的数据参数外,CURL还需要额外的代码行来发送请求 RPC 要使用RPC服务发送类似的请求,用户只

我一直在高度考虑创建REST服务而不是RPC,但在我看来,与RPC服务相比,客户端/用户必须编写大量代码才能实现同样的效果。此外,实现REST服务需要用户了解一些有关REST的基本知识。要用PHP进行说明,请执行以下操作:

休息

  • 要发送GET、POST、PUT、DELETE请求,用户必须使用CURL发送他的请求
  • 当然,这需要他的服务器启用CURL,这对于某些共享主机来说并不好
  • 除了用户需要发送的数据参数外,CURL还需要额外的代码行来发送请求
RPC

  • 要使用RPC服务发送类似的请求,用户只需调用URL和数据参数。ie:example.com?foo=bar&baz=quz

有没有一种方法可以让REST像RPC一样“容易”呢。我正在考虑用RPC方法封装REST请求,但这打破了整个想法,不是吗?

REST不会强制您使用GET、POST、PUT和DELETE。这仅仅意味着一个URL代表一个内容。您还可以实现如下RESTful行为:

GET /index.php
GET /item.php?id=x
POST /create.php
POST /update.php
POST /delete.php

甚至创建、更新和删除都可以通过get请求完成…

什么让你认为rest服务不能通过URL调用?@Interstarr\u Coder你如何通过URL发送PUT POST删除请求?IMB,很公平,你不能这样做。既然你基本上只使用get,那现在看起来像RPC服务吗?而且,没有更统一的“资源”。从RESTful的角度来看,
索引
项目
创建
更新
删除
,都是一堆不同的资源。在RPC中,它们可以表示相同的资源。我想我可以实现它,但是它不再是RESTful,而是REST'sh:-)RPC通常有一个单一的访问点,您可以将要调用的方法和要传递给该方法的参数传递给该访问点,即在一个POST变量中使用XML、JOSN、YAML等。这是真的,但是POST并不总是必需的,也不是作为一个标准来实施的。回到您最初对纯粹主义者的建议,对GET请求使用create、update和delete操作违反了RESTful标准原则。我想我的全部意图是打破它,这样用户就可以更容易地使用它,这样他们就不必显式地使用CURL来发送PUT-POST-DELETE。话虽如此,我想你的建议行。