我正在开发一个客户端-服务器 Web 服务。前端是用构建的,html/javascript/jquery/jqm
后端是用php/mysql
.
当客户端启动时,它有一个static id
(从不改变)和一个dynamic-token
(这意味着它可能会或可能不会改变)。出于这个原因,每次客户端启动时,我们都会将他注册到我们的服务器,我们会向我们的服务器发出POST
请求,其中在正文中我们有一个带有id and token
. 对一个看起来像这样的 php 脚本发出 post 请求:myserver.com/register.php
php 脚本接受id and token
并查询数据库以查看它们是否存在。如果id
不存在,则为creates
新记录。如果它存在,它会检查是否token
已经改变了它updates
。
从客户端,用户可以订阅许多事件(比如说 10 个)。事件显示在带有复选框的列表中。用户检查他希望订阅的事件并按下订阅按钮。当点击订阅按钮时,POST
会向 php 脚本发出请求,该脚本在正文中有一个 json 文件,其中id
包含用户的 json 文件以及带有布尔值(订阅或不订阅)的所有事件名称,例如
id: xxxxxx
event1: 1
event2: 0
event3: 0
event4: 1
...
php 脚本如下所示:myServer/subscribe.php
。当请求到达时,php 文件读取接收到的 JSON。他在数据库中搜索id
,然后检查事件的名称和发送的布尔值。如果是 1,他订阅了用户。如果为 0,他取消订阅用户。如果用户已经订阅并且他再次订阅,则不会发生任何事情。退订也是一样。
最后,当用户进入订阅页面时,POST
会向服务器发出请求,其中包含id
用户的 JSON 文件。该请求是在一个看起来像myServer/whereSubsribed.php
. 这个 php 文件,获取id
并在数据库中查找它id
订阅的事件。完成后,它会使用包含json
用户已订阅的所有事件的文件向客户端响应(回显),以便在加载复选框时,用户已订阅的事件似乎已被选中。
以上服务是 Rest 吗?我真的很难理解什么是休息,什么不是。我的理解:
我知道我应该使用 POST PUT DELELE GET 但我可以像你看到的那样只用 POST 来做所有事情。那为什么要使用它们呢?我知道 Rest 是关于名词而不是动词,是关于资源而不是动作。我不知道这在实践中意味着什么。
在我描述的这种特定情况下,有人可以描述一下 Rest Web 服务的外观吗?我怎么可能没有订阅/取消订阅/注册之类的操作?
我希望通过给我一个例子,我终于可以理解什么是 Rest。在这一点上,也许我应该说我也不知道什么是 SOAP。当我开始开发我的服务时,我只是这样做了,因为那是我认为正确的方法。然后我了解了 Rest/Soap 的东西。那么休息是另一种可以完成我的服务的方式吗?如果是,请花点时间解释一下如何?
非常感谢您阅读这篇长文。
**如果您愿意给我一个答案,请不要给我关于这个主题的定义或理论方法。我已经阅读了几乎所有需要阅读的内容。我也是一个新的 html/php 脚本编写者,所以如果你能给我一个与我描述的完全相同的服务的例子,我将不胜感激。我认为,如果它是 Restful,它会是什么样子很容易理解。
编辑
在我看来,我使用 HTTP 请求 (POST) 将一些数据(id、token 等)推送到特定的操作/php 脚本(订阅、注册、whereSubscribed)。
休息应该正好相反?通过 HTTP(发布删除更新)向资源(用户事件)发送操作。
这是否意味着所有的编程也会改变?我不明白怎么可能没有我写的脚本。当您没有 php 脚本时,如何以编程方式进行订阅?!