跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

REST的php初探

REST是什么? REST(Representational State Transfer)是一种轻量级的Web Service架构风,其实现和操作明显比SOAP和XML-RPC更为简洁,可以完全通过HTTP协议实现,还可以利用缓存Cache来提高响应速度,性能、效率和易用性上都优于SOAP协议。 REST架构遵循了C rest是什么?

REST(Representational State Transfer)是一种轻量级的Web Service架构风格,其实现和操作明显比SOAP和XML-RPC更为简洁,可以完全通过HTTP协议实现,还可以利用缓存Cache来提高响应速度,性能、效率和易用性上都优于SOAP协议。

REST架构遵循了CRUD原则,CRUD原则对于资源只需要四种行为:Create(创建)、Read(读取)、Update(更新)和 Delete(删除)就可以完成对其操作和处理。这四个操作是一种原子操作,即一种无法再分的操作,通过它们可以构造复杂的操作过程,正如数学上四则运算是数字的最基本的运算一样。

REST架构让人们真正理解我们的网络协议HTTP本来面貌,对资源的操作包括获取、创建、修改和删除资源的操作正好对应HTTP协议提供的GET、 POST、PUT和DELETE方法,因此REST把HTTP对一个URL资源的操作限制在GET、POST、PUT和DELETE这四个之内。这种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。

REST的基本模式对一个资源的操作分为四种:Create(创建)、Read(读取)、Update(更新)和Delete(删除);

例如我的某一篇帖子http://www.bumao.com/article/23

那么对它的操作就分为四类:

更新 向URL http://www.bumao.com/article/23 发送 PUT 请求删除 向URL http://www.bumao.com/article/23 发送 DELETE 请求查看 向URL http://www.bumao.com/article/23 发送 GET 请求创建新的博贴 向URL http://www.bumao.com/article 或者 http://www.bumao.com/article/24 (直接写ID,这种一般很少见) 发送 POST 请求我想把某篇帖子置顶咋办呢?那么就得从资源角度上再来考虑针对“置顶资源”的操作了发送 PUT 请求到 http://www.bumao.com//toparticles/23 ,OK帖子置顶了再发送 DELETE 请求到 http://www.bumao.com//toparticles/23 ,OK置顶取消那么以上的资源露在网上的就是:http://www.bumao.com/article/23 (对23号这个帖子进行更新、删除、查看操作)

http://www.bumao.com/article (发表新帖子)

http://www.bumao.com//toparticles/23 (对该帖子置顶“PUT”或者取消置顶“DELETE”) REST使用在使用端和服务端需要明确的API文档说明,也就是要定义好POST过去的值和返回的值,这样你的使用端就可以和REST的服务端“说话”了。

比方说你发新帖子,那么文档里面会规范:user这个变量是发帖人;title这个变量是帖子标题;content这个变量是帖子内容返回的status表示状态;返回的code是错误码,错误码1表示什么,错误码3表示什么… (返回值一般是json或者xml格式)

如何用php实现REST?

那么你知道了这些资源怎么来利用呢?

通过php的curl函数族来搞定!基本上来说php的curl就是个http客户端模拟器,可以模拟出各类的http请求,发送给对应url并取得返回结果。

以post为例:

$ch = curl_init();$timeout = 5;curl_setopt ($ch, CURLOPT_URL, “http://www.bumao.com/article”); //发贴地址curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);curl_setopt($ch, CURLOPT_POST,true); //设置POST方式curl_setopt($ch, CURLOPT_POSTFIELDS,”user=ryan&title=abc&content=def”);//发送的post值$file_contents = curl_exec($ch);//获得返回值curl_close($ch);之后,对照API规范来继续操作PHP 8.5.5 PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。

下载curl_setopt ($ch, CURLOPT_PUT , true); // PUT方式curl_setopt($ch, CURLOPT_CUSTOMREQUEST,”DELETE”); // DELETE方式服务器端可以用 $_SERVER["REQUEST_METHOD"] 来获得http请求的方式之后该怎么处理怎么处理。

立即学习“PHP免费学习笔记(深入)

”;

相关文章