Проблемы с пониманием примера учебника Akka-http - PullRequest
0 голосов
/ 10 июля 2020

У меня нет опыта работы с бэкэндом, я хочу сделать несколько конечных точек отдыха с помощью akka-http. Каждый учебник, который я вижу на inte rnet, имеет другой скелет / структуру и разные имена для вещей.

Я знаю бизнес-логи c Я хочу реализовать, но я потратил много времени на выяснение где его разместить и как должна выглядеть структура проекта, но безрезультатно.

Некоторые проекты / учебные пособия явно используют актеров, другие - нет. Репозиторий, Сервис перепутал взаимозаменяемые имена. Каждый проект / учебник имеет совершенно разную структуру проекта / кода.

Даже basi c tutorial , предоставляемый самим light bend, сильно отличается от других. Как и в actormaterializer, не может быть найден, даже если akka-stream является зависимостью и использует Command и ActionRef , другие руководства совершенно разные.

Насколько хорош учебный пример, предоставленный lightbend? Если все в порядке, я могу скопировать этот шаблон.

Кроме того, не мог бы кто-нибудь немного объяснить основы, лучшие практики и то, как структурировать код и где находится logi c?

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 Ответ

1 голос
/ 10 июля 2020

Связанное вами учебное пособие является хорошим примером с современной передовой практикой. Однако это может быть не лучшим вариантом, если вы просто хотите создать веб-приложение или простой REST API. Вот почему.

Причина, по которой вы находите это запутанным, заключается в том, что Akka НЕ является фреймворком HTTP. Akka начинается с akka -actor, который реализует модель акторов с Scala и считает, что это хороший способ построения распределенных систем. akka-http - это просто модуль, который строится поверх akka -actor (как и почти любой другой модуль), который предоставляет пользователям некоторые полезные возможности для создания веб-приложений, при этом очень хорошо интегрируясь с экосистемой Akka.

Это значит сказал, что если вы ищете простую и быструю загрузку веб-приложения или REST API, akka-http может быть не лучшим выбором. Lightbend действительно предоставляет Play Framework , который, опять же, строится поверх актора акка, но скрывает сложность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...