具有多个路由配置的akka-http

n00b

快速背景

我通过一些示例来学习Akka HTTP堆栈,以创建一个新的REST项目(完全非UI)。我一直在使用和扩充Akka HTTP Microservice Example,以完成大量用例和配置,并且对Scala和Akka HTTP的出色表现感到惊讶。

当前设置

目前,我有这样的配置:

object AkkaHttpMicroservice extends App with Service {
  override implicit val system = ActorSystem()
  override implicit val executor = system.dispatcher
  override implicit val materializer = ActorMaterializer()

  override val config = ConfigFactory.load()
  override val logger = Logging(system, getClass)

  Http().bindAndHandle(routes, config.getString("http.interface"), config.getInt("http.port"))
}

routes参数仅具有使用在其内的典型数据的简单值pathpathPrefix

问题

有什么方法可以在多个Scala文件中设置路由,或者在其中的某个地方设置示例?

我真的很希望能够定义一组类,以将关注点分离,并处理Actor的设置和处理,以处理应用程序的不同区域,而将封送处理留给根App扩展。

这可能是我对如何使用类@javax.ws.rs.Path("/whatever")上的注释在Java中进行操作的方式进行过多思考在这种情况下,请随时指出思维方式的变化。

我试图寻找一些不同的组关键字,但相信我问错了问题(例如,12)。

os

问题1-将路由合并到多个文件中

您可以很容易地合并来自多个文件的路由。

FooRouter.scala

object FooRouter {
   val route = path("foo") {
       complete {
          Ok -> "foo"
       } 
   }       
}

BarRouter.scala

object BarRouter {
   val route = path("bar") {
       complete {
          Ok -> "bar"
       } 
   }       
}

MainRouter.scala

import FooRouter
import BarRouter
import akka.http.scaladsl.server.Directives._
import ...

object MainRouter {
   val routes = FooRouter.route ~ BarRouter.route
}

object AkkaHttpMicroservice extends App with Service {
  ...    
  Http().bindAndHandle(MainRouter.routes, config.getString("http.interface"), config.getInt("http.port"))
}

在这里,您有一些文档:

问题2-单独路由,编组等

是的,您可以将路由,编组和应用程序逻辑分开。这里有激活器示例:https : //github.com/theiterators/reactive-microservices

问题3-使用注释处理路线

我不知道任何库允许您使用注释在akka-http中定义路由。尝试了解有关DSL路由的更多信息。这代表了HTTP路由的另一种方法,但它也是方便的工具。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有正则表达式的HTTP Akka路由未编译

来自分类Dev

具有HTTP接口的Akka actor系统

来自分类Dev

具有多个出站HTTP调用的流

来自分类Dev

具有多个出站HTTP调用的流

来自分类Dev

具有http PUT方法约束的属性路由

来自分类Dev

如何递归处理 Akka HTTP 路由

来自分类Dev

如何在akka-http中有条件地添加路由路径?

来自分类Dev

Akka Http:如何测试带有流到第 3 方服务的路由?

来自分类Dev

名称具有多个HTTP GET参数是否合法?

来自分类Dev

REST API-具有多个错误的HTTP状态代码

来自分类Dev

如何调用具有多个参数的HTTP POST请求?

来自分类Dev

在Spring Security中具有多个http节的NoUniqueBeanDefinitionException

来自分类Dev

如何调用具有多个参数的HTTP POST请求?

来自分类Dev

使用 akka http unmarshall 实体作为具有默认值的 case 类时出错

来自分类Dev

如何在Akka 2.4.7中将Scala HTTP路由转换为Java HTTP路由?

来自分类Dev

如何在Akka 2.4.7中将Scala HTTP路由转换为Java HTTP路由?

来自分类Dev

akka-http是否完全与喷雾路由DSL兼容?

来自分类Dev

akka-http + angular2路由

来自分类Dev

如何使用特征汇总akka-http路由?

来自分类Dev

使用Akka路由DSL获取HTTP标头

来自分类Dev

如何测试Akka-http路由以处理异常?

来自分类Dev

akka-http是否与喷雾路由DSL完全兼容?

来自分类Dev

getFromDirectory 在 akka-http 路由中不起作用

来自分类Dev

根主机上具有参数的GET请求的http4s路由匹配

来自分类Dev

Angular2 $ http获取具有路由属性的Web api控制器的请求

来自分类Dev

Spring Security忽略了多个HTTP配置

来自分类Dev

Elixir是否有HTTP路由库?

来自分类Dev

Elixir是否有HTTP路由库?

来自分类Dev

AKKA-http部署

Related 相关文章

热门标签

归档