- 使用纯
Rest风格定义接口 - 像搭积木一样开发分布式业务
- 实战响应式架构
- 异步非阻塞
- 分布式/集群
- swagger: 文档工具, 可生成规范的Http接口调用文档.
- flyway: 数据迁移工具, 可管理sql脚本的版本及升级, 同时支持
JDBC.
- JDK >= 1.8
- Scala >= 2.12.2
- SBT = 0.13.16
# 命令行连接db
mysql -h 127.0.0.1 -u root -p
# 新建utf8字符集的database
create database `rest_api_scala` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
目前项目的sql脚本使用flyway进行管理和维护, 当前项目中内置了建表语句, 因此只需要修改项目配置中DB连接的用户名和密码即可.
- 修改
application.conf, 将flyway和mysql节点中的用户名密码修改为本地DB的用户名和密码 - 命令行切换进入项目根目录, 执行指令
sbt run; 待出现启动成功字样时项目即启动成功
# 在浏览器中键入如下url
http://127.0.0.1:9100/rest_api_scala/swagger
# 测试环境
sbt testPackage/universal:packageBin
在项目目录下build/test/target/universal可找到打包完成的api-rest_test_0.0.2_build20180419.zip包.
预发布环境/生产环境, 按照build.sbt中 testPackage 子模块规则进行编写即可.
# 解压
unzip api-rest_test_0.0.2_build20180419.zip
cd api-rest_test_0.0.2_build20180419
chmod +x ./bin/testpackage
./bin/testpackage
# 解压
unzip api-rest_test_0.0.2_build20180419.zip
cd api-rest_test_0.0.2_build20180419
chmod +x ./bin/testpackage
nohup ./bin/testpackage&
初始化项目, 提供完整的基础架构和编码规范.
- 路由分散-聚合模式
- 解决CORS问题
- 接口采用纯
restful架构 - 自定义各种
restful异常类, 统一处理异常并返回优雅的响应码和消息 - 使用
swagger描述接口文档, 并在文档中可对接口进行调用测试 - 使用
flyway管理sql脚本
增加通用业务, 获取区域信息接口.
- 支持分布式调用, 同时提供scala和java版的客户端
- akka-remote-client-scala:
- akka-remote-client-java:
- 支持
tell和ask两种调用模式, 推荐使用tell模式 - 弃用默认的
Java Serializer序列化, 使用twitterchill-akka进行序列化和反序列化