【问题标题】:RESTful API,is an .htaccess file with rewrite rules really necessaryRESTful API,是一个真正需要重写规则的 .htaccess 文件
【发布时间】:2014-01-19 00:00:44
【问题描述】:

许多描述如何设置 RESTfull api 的教程都提到了使用 htaccess 文件来重写 url。 老实说,我不太明白这在哪里有用,至少在我的情况下。 让我解释一下。我正在构建一个约会网络应用程序。用户将约会存储在数据库中——当然,这里的意图是通过 REST 完成。

日历显示在名为calendar.php的页面中。从用户到达那里的那一刻起,主干就会向名为events.php的页面发起GET操作:

   var Events = Backbone.Collection.extend({
    model: Event,
    url: 'events.php'
     }); 

Events.php 假设有代码相关的数据库查询-我说假设,因为我还没有在那里写任何代码。要编写应用程序,我正在研究这个 tutorial 这里。

这是我的两个问题:

  1. 您认为这里有任何需要 htaccess 和重写规则
  2. 第二个问题是为什么教程中的 url 属性(代码在标题为 Bringing in Backbone 的部分中找到)仅作为页面事件(没有扩展名) - 在这种情况下 htaccess 会有道理,但为什么要首先打扰

【问题讨论】:

    标签: apache .htaccess mod-rewrite backbone.js


    【解决方案1】:

    应用程序的“REST”接口绝对没有理由需要 mod_rewrite 或 htaccess。

    它通常仅在您想追溯重写时才有用,例如旧网址到新网址(因为有人搞砸了!)。

    人们将 mod_rewrite 用于各种废话,有时堆栈的核心部分已经这样做了——例如将 /foo 映射到 /foo.php (mod_negotiation) 或坚持他们的实现读取查询字符串但他们的 URL看起来像 PATH_INFO。

    【讨论】:

    • 我理解你的回答。我想在我的情况下,你所说的更适用。我说得对吗?
    • 人们想在文件系统中使用 .php 而不是在他们的 URL 中存在根本冲突。有多种方法可以做到这一点
    • 您能否更具体一点,以及这与 REST 有何关系。
    【解决方案2】:

    主干模型/集合使用 AJAX 和 RESTful 资源从服务器获取和设置数据。例如collection.fetch() 将发送GET events.php 以获取所有项目。而model.save() 将发送POST events.phpPUT events.php/1(其中1 是模型的ID)。此外,当您只需要从服务器获取一个特定的模型数据时,它将发送GET events.php/1(其中1 是模型的ID)。因此,对于您的简单请求,您可能根本不使用.htaccess 文件。您可以从PHP 中的$_SERVER['PATH_INFO'] 变量中获取和ID

    【讨论】:

    • 所以教程的作者(blog.shinetech.com/2011/08/05/…) 还不如用了URL,events.php。所以结论是,URL重写是为了拥有更友好的URL——这就是重点我认为
    • 本教程使用 ruby​​ on rails 所以它根本没有使用 apache 和 .htaccess 来制作events url。使用 apache,我们不能使用 php 文件作为 url,所以我们试图用 .htaccess 和 mod rewrite 作弊,将所有来自 url 的请求发送到一个处理 URL 路由的文件。
    • 你从哪里得出教程使用ruby的结论。我在教程中看到的代码是HTML和JS(骨干)。教程可以与PHP / MySQL一起使用吗?就目前而言?
    • cmets 中有一个指向源代码github.com/shinetech/BackboneJsAndFullCalendar 的链接,是的,可以使用 PHP/MySQL,因为它只是后端,您可以使用自己的。
    猜你喜欢
    • 2011-01-14
    • 1970-01-01
    • 2012-12-15
    • 1970-01-01
    • 2015-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多