导入
入门
了解不纯服务的构建模块。
使用的库
让我们依次介绍项目中将使用的各个库,并简要说明每个库的功能。这一点非常重要,因为这些库及其提供的功能将共同构成我们服务的基础组件。

我们的服务的基础组件
1. Akka
使用 Akka,我们可以构建高并发、分布式且具备容错能力的消息驱动应用程序,适用于 Scala。我们还将使用 Akka-HTTP,它提供完整的服务器端和客户端 HTTP 支持;同时使用 Akka-Streams,用于安全地构建流处理架构。
2. Slick
Slick 将作为我们的数据库访问层。我们选择它主要是为了简化开发工作,因为可以使用 Scala 编写数据库查询,而无需使用 SQL。
3. Flyway
我们将使用 Flyway 进行数据库迁移。数据库迁移能够以确定性的方式从当前数据库版本升级到新版本。Flyway 按版本号存储迁移脚本,并可自动执行更新。
4. Circe
Circe 是 Scala 的 JSON 处理库,基于 Cats 构建,仅依赖于 Cats。此外,我们还将使用 akka-http-json 作为其封装层。
5. Refined
我们将使用 Refined 来实现精炼类型(refined types)。该库源自 Haskell 语言的同名库,旨在帮助开发者对类型进行约束。
6. PostgreSQL JDBC 驱动
PostgreSQL JDBC 是一个开源驱动程序,允许 Java 程序通过标准的、与数据库无关的 Java 代码连接到 PostgreSQL 数据库。