难以理解Akka-http示例教程

时间:2020-07-10 17:28:33

标签: scala akka akka-http

我对后端没有任何经验,我想使用akka-http做一些其他的端点。 我在互联网上看到的每个教程都有不同的框架/结构和事物的名称。

我知道我要实现的业务逻辑,但是我花了很多时间弄清楚放置在哪里以及项目结构应该如何,但无济于事。

某些项目/教程明确使用了参与者,而其他人没有使用。存储库,服务令人困惑的可互换名称。每个项目/教程的项目/代码结构都完全不同。

即使光弯曲本身提供的basic tutorial与其他人也有很大不同。就像在 actormaterializer 中一样,即使在akka-stream是依赖项的情况下也找不到位置,并且使用 Command ActionRef 其他教程完全不同

lightbend提供的教程示例有多好?如果效果不错,我可以复制该模式。

还可以有人解释一些基础知识,最佳实践以及如何构造代码以及逻辑去向何处吗?

版本的sbt文件。

lazy val root = (project in file(".")).
  settings(
    inThisBuild(List(
      organization    := "com.example",
      scalaVersion    := "2.13.1"
    )),
    name := "My Akka HTTP Project",
    libraryDependencies ++= Seq(
      "com.typesafe.akka" %% "akka-http"                % akkaHttpVersion,
      "com.typesafe.akka" %% "akka-http-spray-json"     % akkaHttpVersion,
      "com.typesafe.akka" %% "akka-actor-typed"         % akkaVersion,
      "com.typesafe.akka" %% "akka-stream"              % akkaVersion,
      "ch.qos.logback"    % "logback-classic"           % "1.2.3",

      "com.typesafe.akka" %% "akka-http-testkit"        % akkaHttpVersion % Test,
      "com.typesafe.akka" %% "akka-actor-testkit-typed" % akkaVersion     % Test,
      "org.scalatest"     %% "scalatest"                % "3.0.8"         % Test
    )
  )

1 个答案:

答案 0 :(得分:1)

您链接的this是具有最新最佳实践的一个很好的例子。但是,如果您只想构建Web应用程序或简单的REST API,则这可能不是最合适的选择。这就是为什么。

您感到困惑的原因是Akka不是HTTP框架。 Akka从akka-actor开始,后者通过Scala实现tutorial,并认为这是构建分布式系统的最佳方法。 akka-http只是在akka-actor之上构建的模块(几乎与其他模块一样),为用户构建Web应用程序提供一些好处,同时又与Akka生态系统很好地集成。

也就是说,如果您要快速引导Web应用程序或REST API,那么akka-http可能不是最佳选择。 Lightbend确实提供了actor model,它再次在akka-actor的顶部构建,但隐藏了复杂性。

相关问题