我对标题中的问题进行了很多搜索,但我仍然不确定我应该做什么。我今天早上才听说 RESTful,但我读得越多,就越感到困惑。
几周前,我应该制作一个 PHP/jQuery/AJAX 网络应用程序,它基本上是一个包含多个用户的简单待办事项列表。在此过程中,我学到了很多关于 ajax 和 jQuery 的知识(感谢 stackoverflow),我对最终结果非常满意。
应用程序是这样工作的: 用户登录,他的 ID 存储在 session 变量中。例如,如果他点击“添加”按钮,代码看起来像这样。
//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 上
//ajax.php if($_GET['action'] == 'new') add_task($_GET['text'], $_GET['list'], $_SESSION['user_id']);
因此,事实证明,针对 Web 应用程序的 Android 应用程序正在计划中,有人问我是否可以为它制作 RESTful Web 服务。任何人都可以指出我正确的方向吗,是否可以使用这样编码的应用程序来实现这种服务,因为我在某处(以及许多其他内容中)读到它不适用于 session ?
如果有人能至少向我指出一些基本教程,那就太好了,因为目前这一切对我来说都非常困惑。
谢谢大家的帮助
编辑:
好的,谢谢大家,在你们的帮助下,我设法完成了要求我做的事情,我学到了一些新东西,谢谢你们。我现在遇到的问题是身份验证。基本上,android 应用程序使用一些变量(id、list_id 等)向我的 api.php 页面发送请求。现在我如何实现某种形式的身份验证,以便 api.php 只会为经过身份验证的用户返回结果。我已经与应用程序开发人员进行了简短的交谈,基本上他会通过 http header (或类似的东西)向我发送用户名和密码。如何在我的 api.php 页面上获取这些值? 感谢您提供的所有帮助:)
最佳答案
简而言之 - 一个非常实用的非学术解释 - RESTful 网络服务是一种网络服务器,它响应按照 :resource/:action/[:id] 模式构建的请求。
例如,您的用户是一种资源,您有这些操作:
- GET/users : 用户列表
- GET/users/5000/edit : 编辑特定用户
- GET/users/5000 : 显示特定用户
- GET/users/new : 用于创建新用户的表单
- POST/users/:创建新用户的发布请求。
- PUT/users/5000:更新用户的 Post 请求。
- DELETE/users/5000 :删除用户的销毁请求。
它是一个 CRUD 接口(interface):创建、读取、更新、销毁。
您的 session 也是资源。
- POST/session/create :为用户创建一个新 session 。
- DELETE/session/destroy : 删除 session 。
某些资源不需要具有所有 CRUD 操作。
对于描述 RESTful 架构的原始文档:
http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
为了更实际地检查这个问题:
http://www.amazon.com/Service-Oriented-Design-Rails-Addison-Wesley-Professional/dp/0321659368
关于php - 如何在 Web 应用程序上实现 RESTful 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6411015/