Heroku 一起使用play和restlet

Heroku 一起使用play和restlet,heroku,playframework,jetty,restlet,playframework-2.0,Heroku,Playframework,Jetty,Restlet,Playframework 2.0,我已经使用restlet开发了相当广泛的restapi,但现在我需要为web页面提供服务。我已经研究了play框架,它似乎是解决我问题的一个很好的解决方案。有很多代码需要共享,所以我希望两者都从同一个服务器/jvm上运行(以便最终部署到Heroku上) 是否可以将应用程序服务器(如jetty)配置为基于URL路径将调用拆分为restlet或play?如果可以,如何进行?我应该从play项目或restlet项目开始,如何修改它 谢谢!这里有几个选项 您可以使用前置Apache层,这样您就可以将Re

我已经使用restlet开发了相当广泛的restapi,但现在我需要为web页面提供服务。我已经研究了play框架,它似乎是解决我问题的一个很好的解决方案。有很多代码需要共享,所以我希望两者都从同一个服务器/jvm上运行(以便最终部署到Heroku上)

是否可以将应用程序服务器(如jetty)配置为基于URL路径将调用拆分为restlet或play?如果可以,如何进行?我应该从play项目或restlet项目开始,如何修改它


谢谢!

这里有几个选项

  • 您可以使用前置Apache层,这样您就可以将Restlet部分与Play部分完全分离。但是,当您部署到Heroku时,我不确定您是否能够做到这一点,因为Heroku没有为您提供前置http层

  • 修改HTTP处理程序。这将涉及创建您自己的模块或修改游戏的核心源代码。这当然会解决您的用例,但我不认为修改核心是一个很好的答案,而模块方法是相当过分的

  • 使用Play1.x,您可以对所有Restlet API执行一个控制器操作,该操作只调用您的Restlet服务。在Play2.x中,您可以使用全局对象onRouteRequest方法


  • 如果您正在考虑部署到像Heroku这样的PaaS,我想我会选择选项3。

    谢谢您的回答!两个问题:1.是否还有在应用服务器级别执行操作的选项?(jetty/netty/tomcat/随便什么)2.我已经看过了选项3,我喜欢这个想法,但是我没有看到一种方法可以将请求和响应对象从play转换为restlet可以使用的东西。1)这与选项2差不多。Netty公开了一个http处理程序。2) 我没有玩过Restlet,但据我所知,它与应用服务器无关。好吧,我想我误解了选项2。是的,restlet是应用服务器无关的,但我仍然不清楚如何从play.mvc.context和play.mvc.Http.Request(可用于onRequest和action.call)调用restlet,但我会将其标记为正确并开始一个新问题。再次感谢你精彩的回答!我的另一个问题是: