什么是在Seaside应用程序中实现REST的最佳方式?

时间:2014-08-24 23:51:55

标签: smalltalk pharo seaside

可以在Seaside应用程序中使用REST之类的URL来维护所有对continuation的引用吗?也就是说,Seaside的所有好东西,但都有纯可索引的URL。

我知道Seaside-REST中的WARestfulComponentFilter,但如果我从这里开始,我可以使用延续,通话,回答等吗?试一试是否值得?我只需要了解意见。

2 个答案:

答案 0 :(得分:2)

这取决于你想做什么。如果您不想在浏览器的位置栏中看到Seaside会话和延续参数,那么很难完全实现。但它确实可以构建在Seaside中生成可索引URL的应用程序。查看示例的最佳位置可能是Pier CMS的源代码。

可以保留“海边的所有商品”,但使用“纯可索引网址”取决于您的应用以及会话状态。 Seaside的会话和继续参数引用服务器上的实际会话状态。如果你想要一个引用完全相同的东西(但是干净且可索引)的url,你需要在url中传达整个状态。但是,在大多数情况下,您不希望在那里编码用户的会话状态。所以,这是你需要自己做的事情,而Seaside为此提供了正确的切入点。

Lukas Renggli's presentation explaining RESTful urls in Seaside会让您了解如何创建可转位网址。摆脱_s(会话参数)可以在Seaside 3.1中以各种方式完成。您可以自定义WASessionTrackingStrategy或使用其中一个预定义的(例如使用cookie)。摆脱应用程序中的continuation参数更加困难:email thread on REST Urls in a Seaside app

最后,如另一个答案中所述,请查看Seaside REST

总结:生成可索引的网址是可能的(显示在Pier CMS中),从网址栏中删除会话参数也很简单,但是从浏览器的网址栏中删除continuation参数需要手动黑客攻击。

答案 1 :(得分:0)

你看过框架SeasideRest了吗?它应该对你有所帮助。可悲的是,我注意到它最后一次更新是在2011年,因此可能无法维护。