当前位置:  开发笔记 > 编程语言 > 正文

具有多种路由配置的akka​​-http

如何解决《具有多种路由配置的akka​​-http》经验,为你挑选了1个好方法。

问题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"))
}

在这里你有一些文档:

http://doc.akka.io/docs/akka-http/current/scala/http/routing-dsl/overview.html

http://doc.akka.io/docs/akka-http/current/scala/http/routing-dsl/routes.html

问题2 - 分离路由,编组等

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

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

我不知道任何允许你使用annotion在akka-http中定义路由的lib.尝试了解有关DSL路由的更多信息.这代表了一种不同的http路由方法,但它也是一种方便的工具.



1> mgosk..:

问题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"))
}

在这里你有一些文档:

http://doc.akka.io/docs/akka-http/current/scala/http/routing-dsl/overview.html

http://doc.akka.io/docs/akka-http/current/scala/http/routing-dsl/routes.html

问题2 - 分离路由,编组等

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

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

我不知道任何允许你使用annotion在akka-http中定义路由的lib.尝试了解有关DSL路由的更多信息.这代表了一种不同的http路由方法,但它也是一种方便的工具.


值得一提的是,您需要编写`import akka.http.scaladsl.server.Directives._`才能正常工作.Doc:http://doc.akka.io/docs/akka-http/current/scala/http/routing-dsl/routes.html#composing-routes
推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有