Server 端以 open-api 的形式对外开放服务,Client 端在集成 Server 端的 SDK 后,可以参照 SDK 的运行 Demo 来实现对 Server 的服务调用。
前言
先上案例源代码: Github: liumapp/simple-sdk-example
使用方法
-
首先请确保您的操作系统包含了 Maven3、docker、docker-compose。
如果缺少的话,可以参考这个脚本进行安装:liumapp/install-docker-compose
-
安装镜像
-
执行 build-image.sh 脚本,完成 mysql、sdk-server、client-server 镜像的安装。
- mysql 镜像用于支持 client-server 和 sdk-server 两个服务端
- client-server 用于模拟 sdk-demo(sdk-core 是该服务的一个依赖)
- sdk-server 用于模拟 sdk 的服务提供者。
-
-
启动
- 在项目根目录下,执行 docker-compose up -d,等待 10 秒左右后,在浏览器访问 localhost:2020
流程介绍
执行 docker-compose up -d 之后,等待 10 秒左右。
然后打开您的浏览器,分别访问
-
http://localhost:2020/
用于模拟客户端运行的 demo,依赖于 sdk-core,该服务会提供流程展示,具体流程为:
-
创建新的用户
-
提交用户的收货地址
-
用户下订单
-
获取订单详情
-
借助 sdk-core,向 sdk-server 调用订单数据备份接口,将订单详情数据备份到 sdk-server 的数据库系统中。
-
借助 sdk-core,向 sdk-server 获取备份的订单数据,并打印在浏览器的 console 中。
-
-
http://localhost:2020/druid
方便查询 client-server 与数据库的交互。
-
http://localhost:3030/druid
方便查询 sdk-server 与数据库的交互。
开发调试
后端
因为系统是基于 docker 运行的,所以 client-server、sdk-server 和 mysql 之间都是以 docker-compose 的 service name 来进行通讯的。
比如,在 client-server 下,它与 mysql 之间的连接建立地址为:"jdbc:"
这里的 client-mysql 就是代表 docker-compose.yml 下 mysql 的 service name。
所以如果您要调试后端的话,并不建议直接修改 client-server 和 sdk-server 的配置文件。
我个人建议这种方式(假设您的操作系统为 Mac OS):
修改您的/etc/hosts 文件,添加以下内容:
127.0.0.1 client-server
127.0.0.1 client-mysql
127.0.0.1 sdk-server
之后将项目导入您常用的 IDE 即可。
前端
前端项目为 client-ui
项目的主要配置文件为./client-ui/static/js/config.js
前端项目可以独立在 nodejs 环境下运行,也可以做为 client-server 的静态资源去运行。
前者跟传统的前后端分离实现方式一样,后者需要额外对 client-ui 进行打包编译操作,然后运行 update-ui.sh 脚本将 dist 资源整合到 client-server 项目下。
注意事项
-
需要确保您的系统具有 maven、docker、docker-compose 的支持,如果前端项目要独立运行的话,还需要 nodejs 环境的支持。
-
如果要调试系统,请在您本地的 mysql 数据库执行 table.sql 来创建相关数据表。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于