php - 如何在 Web 应用程序上实现 RESTful 服务?

标签 php jquery android ajax rest

我对标题中的问题进行了很多搜索,但我仍然不确定我应该做什么。我今天早上才听说 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/

相关文章:

php - 为什么我不应该在 PHP 中使用 mysql_* 函数?

jquery - 检查空文本字段的显示错误消息

jquery - 更改链接工具提示的类别

javascript - 主干点击事件被多次触发

android - 如何使用 okhttp 身份验证器一次多次请求刷新 token

用于引用 textView 的 Android id 数组

php - 什么是 PHP 和 SQLSRV 驱动程序中的 "New transaction is not allowed"错误?

php - 从数据库中获取用户喜欢的文章列表的最佳做法是什么?

php - Codeigniter 3.x - 左连接和显示字段问题

android - iOS/Android 商店本地化的工作原理