我对RESTful PHP上的教程/示例感到困惑.他们中的大多数都在使用框架(例如Slim)并最终成为API,这使我更加困惑.在完全理解如何创建简单的RESTful PHP之前,我想首先避免所有框架和API材料.
我明白那个,
REST,它的核心,就是为工作使用正确的HTTP动词.GET,POST,PUT,DELETE都有意义,如果某些内容被描述为RESTful,那么它真正意味着所涉及的网站/应用程序都遵循这些含义.
而从PHP服务器端,我明白这是怎么我能察觉的REST请求类型,
$_SERVER['REQUEST_METHOD']
Run Code Online (Sandbox Code Playgroud)
但我的主要问题是如何通过URL将这些REST类型(GET,POST,PUT,DELETE)发送到服务器?
例如,从本教程中,
当您希望创建或更新URL标识的资源时,将使用PUT请求.例如,
然后,
DELETE应该与PUT相反; 当您要删除请求的URL标识的资源时,应该使用它.
http://restfulphp.com/clients/robin并且http://restfulphp.com/clients/anne是相同的干净URL模式.我怎么知道前者是用于PUT而后者是用于DELETE?或者,在那里我应该在表格/ HTML设置来区分它们?
当curl进来时它会变得复杂 - 它与REST网站有什么关系?
从上面的教程,
Once you have cURL installed, type:
curl -v google.com
Run Code Online (Sandbox Code Playgroud)
我应该在哪里打字?
curl如何帮助我删除或PUT?如何$_SERVER['REQUEST_METHOD']从curl中检测REST类型?
curl -v -X DELETE /clients/anne
Run Code Online (Sandbox Code Playgroud)
和
curl -v -X PUT -d "some text"
Run Code Online (Sandbox Code Playgroud)
我问的问题可能听起来很愚蠢,但如果有人能帮助我理解这些问题会很棒.
编辑:
Argg PHP cURL- 另一件让我更加困惑的事情!如果我要通过XMLHttpRequest对象发送REST请求类型,为什么还需要它?它似乎是为了与其他API提供程序进行通信,我希望在此阶段避免使用它们.
如果我可以PHP cURL在我的本地网站内发送REST请求类型,我应该如何以及在何处放置这些问答,
$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFile);
curl_setopt($ch, CURLOPT_COOKIEFILE,$cookieFile);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 4);
Run Code Online (Sandbox Code Playgroud)
如果我使用PHP cURL那么$_SERVER['REQUEST_METHOD']服务器端会发生什么?
http://restfulphp.com/clients/robin并且http://restfulphp.com/clients/anne是相同的干净URL模式.我怎么知道前者是用于PUT而后者是用于DELETE?
你无法从URL中得知.客户端必须将URL与HTTP动词耦合.REST的一部分原因是您可能希望对同一资源执行不同的操作(如果您将来永远不想获取某些内容,则没有太多意义).
或者我应该在/ html格式中设置它以区分它们?
HTML表单只能触发POST和GET请求.如果要在网页中使用不同的HTTP谓词,则需要使用JavaScript和XMLHttpRequest对象.
当curl进来时它会变得复杂 - 它与REST网站有什么关系?
curl 是一个库(以及使用该库的命令行客户端)用于发出HTTP请求.
在开发REST界面时,可以使用命令行客户端来测试服务器.您也可以将它用作实际的客户端,但是您可能最好不要编写专用工具,这样您就拥有了一个很好的命令行界面,而不是强制您在使用它时处理HTTP方面的界面.
作为库,您可以使用它为REST接口编写客户端.
我应该在哪里打字?
在终端仿真器(例如XTerm或Windows Power Shell)中的命令行shell(例如bash或Windows Power Shell)中.
curl如何帮助我删除或PUT?
它允许您指定发送的HTTP动词.您可以在问题后面的示例中看到.
$ _SERVER ['REQUEST_METHOD']如何从curl中检测REST类型?
它告诉您使用哪个动词来发出请求.
如果我要通过XMLHttpRequest对象发送REST请求类型,为什么还需要PHP cURL?
你没有.如果要从服务器发出请求,可以使用PHP.如果要从浏览器发出请求,可以使用XMLHttpRequest.
它似乎是为了与其他API提供程序进行通信,我希望在此阶段避免使用它们.
您可以使用它在您控制的面向客户的Web服务器与后端系统之间进行通信,该后端系统具有您也控制的(非面向客户的)HTTP接口.
如果我可以在我的本地网站中使用PHP cURL发送REST请求类型,我应该如何以及在何处放置这些行
在您希望向REST服务发出请求的服务器端代码(或您的其他PHP客户端)中.
如果我使用PHP cURL那么服务器端的$ _SERVER ['REQUEST_METHOD']会发生什么?
然后,假设您正在使用服务器端PHP(而不是,例如,命令行PHP):
$_SERVER['REQUEST_METHOD'] 将是浏览器发出请求的方法$_SERVER['REQUEST_METHOD'] 将是PHP发出请求的方法| 归档时间: |
|
| 查看次数: |
1837 次 |
| 最近记录: |