Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在web应用程序上实现RESTful服务?_Php_Jquery_Android_Ajax_Rest - Fatal编程技术网

Php 如何在web应用程序上实现RESTful服务?

Php 如何在web应用程序上实现RESTful服务?,php,jquery,android,ajax,rest,Php,Jquery,Android,Ajax,Rest,关于标题中的问题,我搜索了很多,但我仍然不确定我应该做什么。今天早上我刚听说了RESTful,读得越多,我就越困惑 几周前,我应该制作一个PHP/jQuery/ajaxweb应用程序,它基本上是一个包含多个用户的简单待办事项列表。在这个过程中,我学到了很多关于ajax和jQuery的知识(多亏了stackoverflow),我对最终的结果非常满意 应用程序的工作原理如下: 用户登录,其id存储在会话变量中。例如,如果他点击“添加”按钮,代码看起来像这样 //script.js $.get("aj

关于标题中的问题,我搜索了很多,但我仍然不确定我应该做什么。今天早上我刚听说了RESTful,读得越多,我就越困惑

几周前,我应该制作一个PHP/jQuery/ajaxweb应用程序,它基本上是一个包含多个用户的简单待办事项列表。在这个过程中,我学到了很多关于ajax和jQuery的知识(多亏了stackoverflow),我对最终的结果非常满意

应用程序的工作原理如下: 用户登录,其id存储在会话变量中。例如,如果他点击“添加”按钮,代码看起来像这样

//script.js
$.get("ajax.php",{'action':'new','text': $text, 'list': $selectedList
    },
            function(msg){
                    // add a new task and fade it
                        $(msg).hide().appendTo('.listoftasks').fadeIn();
    });
在ajax.php上

所以,正如计划中的android web应用程序一样,有人问我是否可以为它制作一个RESTful web服务。有人能给我指出正确的方向吗?有没有可能用这样编码的应用程序来实现这种服务,因为我在某个地方(在许多其他事情中)读到它不适用于会话

如果有人能至少给我指出一些基本的教程,那就太好了,因为在这一刻,这一切对我来说都很困惑

谢谢你的帮助

编辑:

好的,谢谢大家,我在你们的帮助下完成了我的任务,我学到了一些新的东西,谢谢你们。我现在遇到的问题是身份验证。基本上,android应用程序通过一些变量(id、list\u id等)向my api.php页面发送请求。现在,我如何实现某种形式的身份验证,以便api.php只为经过身份验证的用户返回结果。我与应用程序开发人员进行了简短的交谈,基本上他会通过http头(或类似的东西)向我发送用户名和密码。如何在api.php页面上获取这些值?
感谢您的帮助:)

简单地说,这是一个非常实用的、非学术性的解释,RESTful web服务是一个web服务器,它可以响应按照:resource/:action/[:id]模式构造的请求

例如,您的用户是一个资源,您有以下操作:

  • 获取/用户:用户列表
  • GET/users/5000/edit:编辑特定用户
  • GET/users/5000:显示特定用户
  • GET/users/new:用于创建新用户的表单
  • POST/users/:创建新用户的POST请求
  • PUT/users/5000:更新用户的Post请求
  • DELETE/users/5000:删除用户的销毁请求
它是一个CRUD接口:创建、读取、更新、销毁

您的会话也是资源

  • POST/session/create:为用户创建新会话
  • 删除/会话/销毁:删除会话
有些资源不需要是所有CRUD操作都需要的

对于描述RESTful体系结构的原始文档:

对于这一问题的更实际的检查:


这里有很多有用的信息

请注意,web上有关REST的错误信息多于有效信息

  • RESTful几乎与URL的外观无关
  • 构建RESTful系统是指能够构建能够长期演化的分布式系统。这不是一个短期、快速的解决方案
  • 对RESTFul系统的请求应该相互独立。除了保留身份验证令牌之外,在请求之间保持类似会话的状态是个坏主意

您将在web上看到的大多数被称为REST的系统只是基于HTTP的远程过程调用API。这是一个有效的体系结构,但它不是REST,因此不需要遵守REST约束,也不一定能获得REST的好处。

非常感谢您如此快速的响应:)这让我更清楚我应该做什么。再次感谢您,您所描述的是MVC风格的web框架如何构建web应用程序。如果您真正了解REST,您可以使用这些框架构建RESTful应用程序,但它们肯定不会引导您走上正确的道路。顺便说一句,DESTROY不是HTTP方法。我认为您的意思是删除。此外,创建会话作为资源可能适用于一些简单的情况,但如果您将其用于除帮助身份验证以外的任何用途,则可能会违反自描述约束。“*GET/users/5000:查看用户的GET请求。*GET/users/5000/编辑:编辑用户的表单。”我建议您添加两个额外的标准操作。用户id上的
GET
有点重要;)@达雷尔:谢谢你的意见!啊……先生,您是一位绅士和学者:)。谢谢你的链接和信息。我会试着再深入一点。API至少是一个熟悉的术语,我想我可以做到这一点:)。非常感谢你
//ajax.php

 if($_GET['action'] == 'new')
    add_task($_GET['text'], $_GET['list'], $_SESSION['user_id']);