我正在开发一个客户端-服务器网络服务。前端使用html/javascript/jquery/jqm构建,后端使用php/mysql。
当客户端启动时,它会有一个静态ID(永远不会改变)和一个动态令牌(可能会改变)。因此,每次客户端启动时,我们都会向我们的服务器注册它,并向我们的服务器发送一个POST请求,在请求正文中包含一个带有id和token的JSON文件。POST请求发送到一个名为myserver.com/register.php的php脚本中。php脚本接受id和token并查询数据库以查看它们是否存在。如果id不存在,则创建一个新记录。如果存在,则检查token是否已更改,然后更新。
从客户端,用户可以订阅多个事件(假设是10个)。事件以复选框列表的形式呈现。用户选择他想要订阅的事件并按下订阅按钮。当点击订阅按钮时,将向一个php脚本发送一个POST请求,请求正文中包含一个JSON文件,其中包含用户的ID和所有事件名称以及一个布尔值(订阅或不订阅)。
这个php脚本看起来像这样:
最后,当用户进入订阅页面时,将向服务器发出一个带有用户
上述服务是否为Restful?我非常难理解什么是Restful,什么不是。
我的理解:
我知道应该使用POST PUT DELETE GET,但我可以只使用POST来完成所有操作,就像你所看到的那样。那么为什么要使用它们?我知道Restful是关于名词而不是动词,是关于资源而不是行为。我不知道这在实践中意味着什么。
请问,在我描述的这种情况下,能否给出一个Restful Web服务的描述?怎么可能没有类似订阅/取消订阅/注册等操作?如果可以,请花点时间向我解释一下如何实现Restful服务?
谢谢你阅读这篇漫长的文章。
**如果你足够友好,给我一个答案,请不要给我一个定义或理论方法。我已经读了几乎所有需要阅读的东西。我也是一个新的html/php脚本编写者,所以如果您能给我一个与我描述的完全相同的服务的示例,我会非常感激。如果能够理解它如何成为Restful将是很好的理解方式。
编辑
我看到,我使用HTTP请求(POST)将某些数据(id、token等)推送到特定的操作/PHP脚本(subscribe、register、whereSubscribed)。
Restful应该是完全相反的吗?通过HTTP(post put delete update)将操作发送到资源(用户事件)。
当客户端启动时,它会有一个静态ID(永远不会改变)和一个动态令牌(可能会改变)。因此,每次客户端启动时,我们都会向我们的服务器注册它,并向我们的服务器发送一个POST请求,在请求正文中包含一个带有id和token的JSON文件。POST请求发送到一个名为myserver.com/register.php的php脚本中。php脚本接受id和token并查询数据库以查看它们是否存在。如果id不存在,则创建一个新记录。如果存在,则检查token是否已更改,然后更新。
从客户端,用户可以订阅多个事件(假设是10个)。事件以复选框列表的形式呈现。用户选择他想要订阅的事件并按下订阅按钮。当点击订阅按钮时,将向一个php脚本发送一个POST请求,请求正文中包含一个JSON文件,其中包含用户的ID和所有事件名称以及一个布尔值(订阅或不订阅)。
id: xxxxxx
event1: 1
event2: 0
event3: 0
event4: 1
...
这个php脚本看起来像这样:
myServer/subscribe.php
。当请求到达时,php文件读取收到的JSON,然后在数据库中搜索id
,然后检查发送的事件名称和布尔值。如果是1,他会订阅用户。如果是0,他会取消用户的订阅。如果用户已经订阅,并再次订阅,则不会发生任何事情。取消订阅也是一样。最后,当用户进入订阅页面时,将向服务器发出一个带有用户
id
的JSON文件的POST
请求。该请求在一个看起来像myServer/whereSubsribed.php
的php文件上进行。这个php文件获取id
并查看在哪些事件中订阅了这个id
。完成后,它通过一个json
文件向客户端响应(做出回声),其中包含用户已经订阅的所有事件,以便在加载复选框时,用户已经订阅的事件可以被勾选。上述服务是否为Restful?我非常难理解什么是Restful,什么不是。
我的理解:
我知道应该使用POST PUT DELETE GET,但我可以只使用POST来完成所有操作,就像你所看到的那样。那么为什么要使用它们?我知道Restful是关于名词而不是动词,是关于资源而不是行为。我不知道这在实践中意味着什么。
请问,在我描述的这种情况下,能否给出一个Restful Web服务的描述?怎么可能没有类似订阅/取消订阅/注册等操作?如果可以,请花点时间向我解释一下如何实现Restful服务?
谢谢你阅读这篇漫长的文章。
**如果你足够友好,给我一个答案,请不要给我一个定义或理论方法。我已经读了几乎所有需要阅读的东西。我也是一个新的html/php脚本编写者,所以如果您能给我一个与我描述的完全相同的服务的示例,我会非常感激。如果能够理解它如何成为Restful将是很好的理解方式。
编辑
我看到,我使用HTTP请求(POST)将某些数据(id、token等)推送到特定的操作/PHP脚本(subscribe、register、whereSubscribed)。
Restful应该是完全相反的吗?通过HTTP(post put delete update)将操作发送到资源(用户事件)。
这是否意味着所有编程都会改变?我不明白如何可能没有我编写的脚本。当您没有php脚本时,如何通过编程方式进行订阅?!