gpt4 book ai didi

php - 通过示例了解休息

转载 作者:搜寻专家 更新时间:2023-10-31 21:12:10 24 4
gpt4 key购买 nike

我正在开发一个客户机-服务器Web服务。前端用html/javascript/jquery/jqm构建,后端用php/mysql构建。
当客户机启动时,它有一个static id(从不更改)和一个dynamic-token(这意味着它可能更改,也可能不更改)。因此,每次客户机启动时,我们都会向服务器注册他,然后向服务器发出POST请求,在服务器的主体中有一个带有id and token的json文件。POST请求是这样的PHP脚本:myserver.com/register.php,PHP脚本采用id and token并向数据库查询,以查看它们是否存在。如果id不存在,则creates一个新记录。如果存在,则检查是否已更改了< > > > < > >。
用户可以从客户端订阅许多事件(比如说10个)。事件显示在带有复选框的列表中。用户检查要订阅的事件,然后按订阅按钮。当点击subscribe按钮时,会向php脚本发出一个token请求,该脚本的主体中有一个json文件,该文件带有用户的updates,所有事件的名称都带有布尔值(subscribe或not subscribe),例如

id: xxxxxx
event1: 1
event2: 0
event3: 0
event4: 1
...

php脚本如下: POST。当请求到达时,php文件读取接收到的json。他在数据库中搜索 id,然后检查事件的名称和发送的布尔值。如果是1,他订阅用户。如果为0,则取消用户订阅。如果用户已经订阅并且再次订阅,则不会发生任何事情。退订也一样。
最后,当用户进入订阅页面时,会向服务器发出一个 myServer/subscribe.php请求,请求的主体中有一个json文件,其中包含用户的 id。请求是在一个看起来像 POST的php文件上发出的。这个php文件获取 id并在订阅此 myServer/whereSubsribed.php的事件的数据库中查找。当它完成时,它会用一个 id文件响应(发出回声)客户机,该文件包含用户已经订阅的所有事件,因此当加载复选框时,用户已经订阅的事件看起来是选中的。
以上服务是否休息?我真的很难理解什么是休息,什么不是休息。
我的理解是:
我知道我应该使用post-put-delele-get,但是我可以用你看到的post做任何事情。那为什么要用呢?我知道休息是关于名词而不是动词,是关于资源而不是行动。我不知道这在实践中意味着什么。
在我描述的这种特定情况下,有人能描述一下rest web服务的样子吗?我怎么可能没有订阅/取消订阅/注册这样的操作?
我希望通过给我一个例子,我能最终理解什么是休息。在这一点上,也许我应该说我也不知道什么是肥皂。当我开始开发我的服务时,我就是这样做的,因为我认为这是正确的方法。然后我了解了rest/soap的事情。那么休息是我服务的另一种方式吗?如果是的话,请花点时间和我解释一下。
非常感谢您阅读这篇长文章。
**如果你愿意给我一个答案,请不要给我一个关于这个问题的定义或理论方法。我几乎读了所有需要读的东西。我也是一个新的html/php脚本程序,所以如果您能给我一个与我描述的服务完全相同的示例,我将不胜感激。如果它看起来是如何平静的将是伟大的理解我想。
编辑
在我看来,我使用http请求(post)将一些数据(id、令牌等)推送到特定的action/php脚本(subscribe、register、wheresubscribed)。
剩下的应该是确切的位置吗?通过http(post-put-delete-update)向资源(用户和事件)发送操作。
这是否意味着所有的程序都会改变?我不明白怎么可能没有我写的剧本。如果没有php脚本,如何以编程方式进行订阅?啊!

最佳答案

正如你所描述的,不,这不是休息。在rest中,url就像指向资源的地址。实际上,url是名词,http方法是动词。
所描述的系统具有作为动词的脚本。例如,subscribe.php执行做某事的动作。
冷静地思考,您的资源包括令牌和订阅之类的东西。如果您想做rest,那么每个订阅都应该有一个清晰的url。
例如,订阅的url可能是/path/to/subscriptions/<subscription_id>,其中<subscription_id>被替换为有问题的订阅的特定id。当客户想要订阅某个东西时,他们会把一些东西放到那个url上。
如果客户机想要订阅,但不知道确切的最终位置,他们会发布到类似于/path/to/subscriptions的通用文件,而http响应将包含一个指向正确/path/to/subscriptions/<subscription_id>的位置头。
php不利于restful编程。php脚本位于特定路径并执行操作(动词)。你必须尽你所能拥有漂亮的url来反映资源的名词性。
希望这有帮助!

关于php - 通过示例了解休息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17218528/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com