要使此代码正常工作(一般情况下)需要导入什么?
What to import for this code to work (and in general)?
我正在玩弄 akka-http 并尝试编译以下示例:
val route: Route =
path("data" / IntNumber) { id =>
get {
complete {
"GET /data/" + id
}
}
}
我发现我不知道要包含什么才能使其编译。此外,一般来说,在使用 Scala 和 Akka 时,我发现自己多次处于 "ugh, what do I need to import for this to work?" 或 "this isn't working because of some import?" 的情况具体来说。我使用 IntelliJ IDEA,但除了出色的 IDE 支持外,它无法多次自动导入所需内容(例如,在 Akka 中使用询问模式时)。我不怪 IDE;我知道有时导入正确的东西可能很复杂或不可能。所以,尽管我的问题听起来很愚蠢,但人们会做什么来独立于使用 IDE 来处理这些问题?以及要在上面的代码中添加什么才能使其正常工作?
谢谢!
我认为以下代码应该显示您需要的结构(需要隐式 ExecutionContext
)以及为您提供路由 DSL 的导入:
import akka.http.server._
import scala.concurrent.ExecutionContext
class MyDataService(implicit ec:ExecutionContext) {
import Directives._
val route: Route =
path("data" / IntNumber) { id =>
get {
complete {
"GET /data/" + id
}
}
}
}
只要您在范围内有一个隐式 ExecutionContext
并且您可以从 akka.http.server.Directives 同伴访问隐式,您应该能够使用路由和指令功能。这是实现此目的的一种方法,但是例如,您可以混入 Directives
特征来代替并获得相同的结果。
一般来说,要在 Scala 中找到正确的隐式导入,您确实需要有良好的文档。有时,编译器错误消息可能会提示您需要哪些导入,有时则不会。
特别是 akka-http,不幸的是此时文档还不完整,这使得它使用起来有些困难。
我查找了您提供的代码片段的导入并得出:
import akka.http.server.Route
import akka.http.server.Directives._
Route
导入由 IDE 找到,但我只能通过搜索 GitHub 上的 akka-http 源代码找到路由指令的导入,寻找有关开发人员打算如何使用该库的线索。所需的导入应该在文档中很突出,但目前还没有。我还没有在 akka-http 中找到路由 DSL 的好的示例代码。
我正在玩弄 akka-http 并尝试编译以下示例:
val route: Route =
path("data" / IntNumber) { id =>
get {
complete {
"GET /data/" + id
}
}
}
我发现我不知道要包含什么才能使其编译。此外,一般来说,在使用 Scala 和 Akka 时,我发现自己多次处于 "ugh, what do I need to import for this to work?" 或 "this isn't working because of some import?" 的情况具体来说。我使用 IntelliJ IDEA,但除了出色的 IDE 支持外,它无法多次自动导入所需内容(例如,在 Akka 中使用询问模式时)。我不怪 IDE;我知道有时导入正确的东西可能很复杂或不可能。所以,尽管我的问题听起来很愚蠢,但人们会做什么来独立于使用 IDE 来处理这些问题?以及要在上面的代码中添加什么才能使其正常工作?
谢谢!
我认为以下代码应该显示您需要的结构(需要隐式 ExecutionContext
)以及为您提供路由 DSL 的导入:
import akka.http.server._
import scala.concurrent.ExecutionContext
class MyDataService(implicit ec:ExecutionContext) {
import Directives._
val route: Route =
path("data" / IntNumber) { id =>
get {
complete {
"GET /data/" + id
}
}
}
}
只要您在范围内有一个隐式 ExecutionContext
并且您可以从 akka.http.server.Directives 同伴访问隐式,您应该能够使用路由和指令功能。这是实现此目的的一种方法,但是例如,您可以混入 Directives
特征来代替并获得相同的结果。
一般来说,要在 Scala 中找到正确的隐式导入,您确实需要有良好的文档。有时,编译器错误消息可能会提示您需要哪些导入,有时则不会。
特别是 akka-http,不幸的是此时文档还不完整,这使得它使用起来有些困难。
我查找了您提供的代码片段的导入并得出:
import akka.http.server.Route
import akka.http.server.Directives._
Route
导入由 IDE 找到,但我只能通过搜索 GitHub 上的 akka-http 源代码找到路由指令的导入,寻找有关开发人员打算如何使用该库的线索。所需的导入应该在文档中很突出,但目前还没有。我还没有在 akka-http 中找到路由 DSL 的好的示例代码。