Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

背景

  1. 使用纯Rest风格定义接口
  2. 像搭积木一样开发分布式业务
  3. 实战响应式架构
  4. 异步非阻塞
  5. 分布式/集群

名词解释

  • swagger: 文档工具, 可生成规范的Http接口调用文档.
  • flyway: 数据迁移工具, 可管理sql脚本的版本及升级, 同时支持JDBC.

快速运行项目代码

运行前准备

  1. JDK >= 1.8
  2. Scala >= 2.12.2
  3. 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连接的用户名和密码即可.

  1. 修改application.conf, 将flywaymysql节点中的用户名密码修改为本地DB的用户名和密码
  2. 命令行切换进入项目根目录, 执行指令sbt run; 待出现启动成功字样时项目即启动成功

访问swagger接口API

# 在浏览器中键入如下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&

版本发布历史

v0.0.1

初始化项目, 提供完整的基础架构和编码规范.

  • 路由分散-聚合模式
  • 解决CORS问题
  • 接口采用纯restful架构
  • 自定义各种restful异常类, 统一处理异常并返回优雅的响应码和消息
  • 使用swagger描述接口文档, 并在文档中可对接口进行调用测试
  • 使用flyway管理sql脚本

v0.0.2

增加通用业务, 获取区域信息接口.

v0.0.3

  • 支持分布式调用, 同时提供scala和java版的客户端
    • akka-remote-client-scala:
    • akka-remote-client-java:
  • 支持tellask两种调用模式, 推荐使用tell模式
  • 弃用默认的Java Serializer序列化, 使用twitter chill-akka进行序列化和反序列化

关联项目

About

用scala构建restful接口和Actor微服务

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages