Backbone UI和CMS后端:浏览Restful CRUD

时间:2012-07-29 05:29:10

标签: php rest backbone.js crud restful-architecture

Backbone 教程我已阅读实现某种类型的迷你框架(即Slim),其中RESTful架构在服务器db like this上执行CRUD。 Backbone文档声明你需要一个RESTful api,我认为这是由于Backbone Route和Sync功能使模型保持最新,这是我选择使用Backbone的一个重要方面。

例如,下面的行将虚假URL(路由)映射到'addWine'函数(在Slim api中):

$app->post('/wines', 'addWine');

假设1 :如果我有一个(PHP)CMS后端(而不是迷你框架)我假设我可以简单地用我自己的CMS类方法调用替换第二个参数(addWine)返回一个json对象。

假设2 但是我无法直接从html中的链接调用相同的类方法而不会导致骨干丢失状态,因此它能够同步模型数据(并记住浏览器历史)。

假设3 在这种情况下,我需要使用Slim api并通过(Slim)RESTful CRUD调用路由骨干网址,以便访问我的CMS数据库以保持骨干满意。

如果这些假设是正确的,那么似乎主干正在拦截那些HTTP调用 - 这让我想知道整个RESTful + Backbone关系是如何工作的。你能解释一下吗?

如果我的假设不正确,那么我需要比我想象的更多的帮助。你可以帮忙吗?

由于

2 个答案:

答案 0 :(得分:1)

我不能密切谈论你的三个假设,但至于你的最后一个问题 - Backbone不会“拦截”HTTP调用 - 它构建它们,就像任何其他javascript库创建一个AJAX请求一样。

Backbone与服务器端语言/框架相对不可知。以下是Backbone期望随时调用“sync”的内容:

Backbone的同步功能根据调用的方法使用不同的HTTP请求类型。这些不同的HTTP请求类型是:

  • POST
  • GET
  • PUT
  • DELETE

您的框架需要支持以上所有内容,以支持Backbone的“开箱即用”功能。这意味着您必须在应用程序中指定上述所有路由才能使用Backbone。

另外需要注意的是,“创建”和“更新”方法并不特意带有请求的后期数据 - 而是发送带有数据的json摘要的内容正文,并期望服务器端正确解析一个JSON对象并适当地处理它。

答案 1 :(得分:1)

我对所有三个假设都说“是”,并同意@Andy Baird。

此外,您的项目唯一的问题是如何通知Backbone您已更新数据库,并希望它在前端更新自己。我只能看到两个解决方案:

1)使用Javascript的setInterval() - 如果您不需要在数据库更新时立即更新前端,您可以每1分钟检查一次更改,Backbone知道只更新已更改的内容并添加新内容但是,如果你有1k活跃的人每分钟重复请求,这对服务器来说是不健康的

2)使用SocketIO或类似的服务 - 这样你就可以从服务器向Backbone发送你的数据库的整个修改列表或简单的'请刷新,等待的新东西'。检查this discussion

相关问题