首页 > 解决方案 > 如何为 akka http 的端点引入版本控制

问题描述

我在 akka-http 中有 5 个控制器。每个端点有 5 个端点(路由)。现在我需要为这些介绍版本控制。所有端点都应以/version1. 例如,如果现在有一个端点xyz,它应该是/version1/xyz. 其中一种方法是添加一个,pathPrefix但需要将它添加到每个控制器中。有没有办法将它添加到一个共同的地方,以便它出现在所有端点上。

我正在使用带有 scala 的 akka-http。

标签: scalarefactoringversioningendpointakka-http

解决方案


您可以创建一个基本路由,它接受类似的路径/version1/...并引用没有路径前缀的内部路由。

val version1Route = path("xyz") {
   ...
}
val version2Route = path("xyz") {
   ...
}
val route = pathPrefix("version1") {
   version1Route
} ~ pathPrefix("version2") {
   version2Route
}

推荐阅读