逻辑和物理URL - php

这个问题是对我前面的问题的扩展:"Is this web service Restfull",目的是更好地理解Rest Web Service的概念。
我阅读了几乎所有有关Rest的文章,但是我无法理解某个Web Service是否为Rest,或者为什么不是。我的看法是,一切取决于视点...

我在一篇非常有趣的文章中读到了一些可能最终使我理解什么是安息的东西。我读到Rest不使用物理URL,而是使用逻辑URL。

我记得曾经开发过一个iOS应用程序,在该应用程序中我们必须注册/订阅用户等,并被告知向服务器发出某个Post HTTP请求,该请求类似于以下URL:www.myServer/devices/device/register。在此请求的主体中,我拥有服务器所需的json格式的所有信息。那时,对我来说服务器是一个黑匣子,所以我什至不在乎此链接的含义或生成方式。但是我知道这是一个Web Rest服务。

本月,我开始开发移动混合应用程序devepong,在该应用程序中,我开始使用本地代码+ jquery mobile开发前端,而使用php + mysql开发后端。在这里,我有或多或少都存在相同的情况,即用户是否需要订阅事件。当他按下按钮以订阅特定事件时,我向主体发出了带有ajax调用和json文件的http发布请求,并向特定的php脚本发送了该脚本,并相应地在数据库中写入/更新/删除了该脚本。

呼叫看起来像这样:

$.ajax({
                         type: "POST",
                         url: "http://192.168.4.113/Server_CityInfo/subscribe.php",
                         data: data,
                         contentType: "application/json; charset=utf-8",
                         //dataType: "json",
                         success: function(response) {
                             $.mobile.changePage( "dialog.html", { role: "dialog" } );
                         },
                         error: function(xhr, status, message) { alert("Status: " + status + "\nMessage: " + message); }
                    });

如您所见,我确实使用物理url来指向我的php脚本以执行该操作。甚至用户所在的html页面也是一个物理页面!是类似于myUrl.com/eventX的页面。

这是否意味着我正在构建的此Web服务不是Rest之一?

去年他们如何将我指向逻辑网址,而我只能指向物理php脚本?我知道他们的服务器在java中,也许这就是为什么这些URL看起来不物理的原因?

最后,我可以说我有100个不同的事件可供用户订阅。当然,我不会制作100个静态html页面。但是我会做1 html页面将动态生成。但是,该页面的链接仍然是物理链接,例如mySite.com/event.html。我知道使URL看起来合乎逻辑的唯一方法是,当您在文件夹中有一个index.html文件,并且您指向该文件夹时,URL看起来像myWebsite.com/myFolder

所以这里的问题是,如何构建一个逻辑URL,这是什么使服务Restfull?

编辑

我经常阅读的另一件事是,Rest使用的是描述资源而非操作的网址!再次,尽管我不明白。对于我的Web服务中的所有内容,我都使用“发布请求”。例如,我想为用户订阅事件,我在url my.server.com/subscribe.php处发出发布请求,并且在此请求的正文中,我有一个json文件,其中包含用户的idevent name

当我想注册用户时,我会在网址my.server.com/register.php和正文中的json与用户的id处发帖请求。

这种情况是否可以休息,如果没有,还缺少什么?

参考方案

我将尽我所能解释REST。

RESTfull Web服务基于两个因素:

URLS-URL应基于资源。像:/ app /学生,/ app /学生/ {id}
方法-方法定义了要对url执行的操作。喜欢

GET-获取资源
PUT-插入记录
POST-更新记录
DELETE-删除记录。

有多种方法可以使用PHP实现静态网址,请参见答案here

PHP:获取调用引用的数组名称 - php

假定以下函数并调用:function doSomething( &$someArray ) { // Do something to $someArray } $names=array("John", "Paul", "George", "Ringo"); doSomet…

PHP-将日期插入日期时间字段 - php

我已在数据库中使用datetime字段存储日期,使用PHP将“今天的日期”插入该字段的正确方法是什么?干杯, 参考方案 我认为您可以使用php date()函数

PHP-如何获取类的成员函数列表? - php

如果我知道班级的名字。有没有办法知道类的成员函数列表? 参考方案 get_class_methods()是你的朋友

PHP-MySQL结果转换为JSON - php

我试图了解如何将MySQL结果转换为JSON格式,以便以后可以在Javascript中使用此JSON来构建HTML表。但是我的代码只是产生大量的空值,我还不明白为什么。$result = mysqli_query($con, "SELECT * FROM Customers"); $test = json_encode($result);…

PHP Count数组元素 - php

嗨,有人可以解释为什么这会返回“数组由0个元素组成”。 :$arr = array(1,3,5); $count = count($arr); if ($count = 0) { echo "An array is empty."; } else { echo "An array has $count elements.…