java - 使单个 Play Framework 2.6 操作处理路由而不考虑其 HTTP 方法的最佳方法

标签 java playframework

我们有一个 Play 2.6 Java 应用程序,到目前为止运行良好。 现在我们需要向其添加一些路由,该路由将仅获取原始请求,用一些附加 header 或其他内容装饰它,然后将其转发以由其他应用程序处理(可能使用 Play 的 WS 客户端) 问题是是否可以在 Play 路由文件中创建一些像这样的路由:

*/forward-to-smth/*whatever my.Action.forward

其中 * 将匹配所有 HTTP 方法,我们将在操作主体中获取 Http.Request 实例并根据需要进行处理。

在 Play 中处理此类场景的最佳方法是什么? 我们可能可以为每个 HTTP 方法创建多个路由条目,并在 Controller 中为每个方法创建多个操作,将所有处理委托(delegate)给单个处理所有方法,但是还有更优雅的解决方案吗?

为这种情况创建一些自定义HttpRequestHandler可能会有点过分?

最佳答案

Play可以方便地从routes文件生成一个Router,但你也可以自己编写一个Router。请参阅https://www.playframework.com/documentation/2.6.x/ScalaSirdRouter

class MyRouter @Inject()(controller: MyController) extends SimpleRouter {
  override def routes: Routes = {
    case _ => controller.forward
  }
}

然后,在您的路由文件中添加

-> /forward-to-smth  my.MyRouter

关于java - 使单个 Play Framework 2.6 操作处理路由而不考虑其 HTTP 方法的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59730920/

相关文章:

java - React - 如何将我想要的组件拾取到另一个模块中

java - 从同一 session 同时请求同一端点会在 Play 中产生问题

playframework - Play Framework 图标问题

java - 如何使用 Docker 在 Jelastic 上部署 Play 2.5 应用程序?

java - 如何在 Play Framework 的表单助手中隐藏标签?

java - 无法将 txt 文件复制到 arraylist 并复制到文件中

java - Hibernate/JPA 注释——未知实体

java - 计算标准差的尾部递归方法

Java非托管内存流

java - 玩框架! (1.2.4): null first several dynamic parameters