0

因此,我正在构建一个 Web 站点应用程序,该应用程序将包含一小组内容文件,每个内容文件都专用于通用目的,而不是大量文件,每个文件都专用于特定信息。换句话说,不是 /index.php、/aboutme.php、/contact.php 等,而是 /index.php(基本上只是一个带有 HTML 和 的 shell)然后是 content.php、error.php , 404.php 等

为了交付内容,我计划将“目录结构”和相关内容存储在数据表中,捕获 URI,然后查询数据表以查看 URI 是否与存储的“目录结构”匹配。如果匹配,相关内容将返回给应用程序,应用程序将使用 Pear 的 HTTP_Request2 向 content.php 发送请求。然后,content.php 将显示从数据库返回的相应内容。

编辑 1:例如:

  • 用户在浏览器中键入 www.somesite.com/contact/
  • index.php 加载
  • index.php 上 HTML 标头上游的脚本执行以下操作:
    • 提交一个 mysql 查询并寻找WHERE path = $_SERVER[REQUEST_URI]
    • 如果找到匹配项,它会设置$content = $dbResults->content并 POST$content到 /pages/content.php 以进行显示。原始 URI 被保留,尽管 /pages/content.php 和 /index.php 实际上是在传递内容
    • 如果找不到匹配项,则将 /pages/404.php 的内容返回给用户。即使 index.php 和 /pages/404.php 实际上正在传递内容,这里也保留了原始 URI。

这是一种 RESTful 方法吗?一方面,URI 被用于访问特定资源(数据表中的元组),但另一方面,我想我一直认为“资源”是实际目录中的实际文件。

我不想成为一个 REST 纯粹主义者,我只是在深入研究使用 HTTP 的更深奥的方面和方法,并希望提高我的知识和理解......

4

1 回答 1

0

好的,我的结论是,我的方法本身并没有什么不稳定的地方,但是我如何使用 URI 访问数据表似乎很关键。我认为将资源的完整路径存储在数据表中该资源的行中并不符合 REST 的精神。

相反,我认为对于 URI 中引用的每个“目录”都有一个唯一的元组很重要。我现在设置的方式是创建一个“集合”表和一个“资源”表。集合是一组资源,而资源是单个实体(内容页面、图像等,甚至是允许嵌套和分类结构的集合)。

因此,例如,/portfolio 将与集合表资源表中的投资组合条目相对应,/portfolio/spec-ads 也是如此;但是,/portfolio/spec-ads/hersheys-spec-ad对应于资源表中的条目。例如,该条目将包含在 YouTube 上嵌入 Hershey 规范广告的代码。

我仍在寻找一种有效的方法来从具有多个“目录”的解析 URI 构建查询,但我已经到了那里。下一步将以另一种方式工作并构建一个查询,该查询构造一个带有 RESTful URI 的导航系统。不过,我再次认为我在原始问题中提出的方法是 RESTful,只要我正确关联 URI、查询和数据架构。

越走这条路,越喜欢……

于 2013-07-27T04:12:22.253 回答