我正在通过一些示例学习Akka HTTP堆栈来创建一个新的REST项目(完全非UI)。我一直在使用和扩展Akka HTTP微服务示例,以通过一系列用例和配置来工作,并对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
参数只是一个简单的值,其中包含使用path
、pathprefix
等的典型数据。
有没有什么方法可以在多个Scala文件或某个示例中设置路由?
这可能是我想得太多了,因为我是如何在Java中使用诸如@javax.ws.rs.path(“/whatever”)
这样的注释在我的类上做事情的。如果是这样的话,请随意指出心态的改变。
我试着搜索几个不同的关键字集,但我相信我问错了问题(例如,1、2)。
问题1-在多个文件中合并路由
您可以很容易地组合来自多个文件的路由。
FooRouter.Scala
object FooRouter {
val route = path("foo") {
complete {
Ok -> "foo"
}
}
}
object BarRouter {
val route = path("bar") {
complete {
Ok -> "bar"
}
}
}
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"))
}
问题3-使用注释处理路由
我不知道任何允许您在AKKA-HTTP中使用注释定义路由lib。尝试了解有关DSL路由的更多信息。这代表了http路由的一种不同方法,但它也是一种方便的工具。
每个路由可以有不同的属性; 一些常见的属性是: path - 应用程序在特定路由上时在浏览器中显示的URL component - 当应用程序在特定路由上时要呈现的组件 pathMatch - 默认为’prefix’的可选属性。 确定是匹配完整的网址还是仅匹配开头。 当定义一个具有空路径字符串的路径设置pathMatch为’full’时,否则它将匹配所有路径。 children - 表示此路由的子
路由配置 路由的作用 路由配置是 CAT 集群流量负载均衡最重要的一环。路由配置提供了默认机器列表、多机房划分、地域划分等基本功能,路由选择的优先级为:同机房 > 同地域 > 默认机器 > 备用机器。 对于流量较高的机器,用户可以扩展相应的策略,通过路由配置将部分流量指定到低负载的机器。 配置入口 http:///localhost:8080/s/config?op=routerConfigUpd
V2Ray 内建了一个简单的路由功能,可以将入站数据按需求由不同的出站连接发出,以达到按需代理的目的。这一功能的常见用法是分流国内外流量,V2Ray 可以通过内部机制判断不同地区的流量,然后将它们发送到不同的出站代理。 RoutingObject RoutingObject 对应主配置文件中的routing项。 { "domainStrategy": "AsIs", "rules": []
目前的配置文件和文件结构 在demo目录下有一个index.html和home.html 需要配置 访问 localhost:90/demo, 加载demo下的index.html 访问 localhost:90/demo/home, 加载demo下的home.html 应该怎么写? 我试了下在和 server 同级加了一个 server 但是没有效果, 访问是404, 不是很理解 这种写法有什么
路由配置项位于 /lavas.config.js 的 router 对象。Lavas 内部使用 vue-router 进行路由管理,因此许多配置项都和 vue-router 是相同的。 Lavas 路由配置项包括: 路由模式,基准路由等 路由切换动画效果 重写路由(如果对自动生成的路由规则不满意) 路由模式和基准路由 router: { mode: 'history', base:
配置 func InitRouter(r *gin.Engine) { r.GET("/sn", SignDemo) // v1 版本 GroupV1 := r.Group("/v1") { GroupV1.Any("/product/add", v1.AddProduct) GroupV1.Any("/member/add",