# ADXP SDK Adapter Service ADXP 数据中台 SDK 适配器服务 - 基于 JDK 8 运行的独立微服务 ## 新架构特性(ADXP主动连接) ### 🔄 **适配器主动连接架构** - **启动即连接**: 适配器服务启动时自动连接到ADXP数据中台 - **无需登录接口**: 移除 `/login` 端点,由适配器自动管理认证 - **连接状态管理**: 提供 `/status` 和 `/reconnect` 端点进行连接管理 - **WebSocket实时推送**: 支持实时向客户端推送航班消息 - **健康监控**: 内置连接状态监控和自动重连机制 ## 功能特性 将青岛机场数据中台 SDK (adxp-client-2.6.9.jar) 封装为 REST API 服务,解决 SDK 与现代 Java 版本的兼容性问题。 ## 技术栈 - **Java**: JDK 8 - **框架**: Spring Boot 2.7.18 - **构建**: Maven - **容器化**: Docker ## 快速开始 ### 方式1:Docker Compose(推荐) ```bash # 1. 构建并启动服务 docker compose up -d # 2. 查看日志 docker compose logs -f # 3. 停止服务 docker compose down ``` ### API接口(ADXP主动连接架构) #### 获取连接状态 ``` GET /api/adxp/status ``` 返回当前ADXP数据中台的连接状态和会话信息。 #### 强制重连 ``` POST /api/adxp/reconnect ``` 强制断开当前连接并重新连接ADXP数据中台。 #### 获取消息接口 ``` GET /api/adxp/messages ``` 使用当前活动连接获取ADXP数据中台的航班消息。 #### 断开连接接口 ``` POST /api/adxp/disconnect ``` 主动断开与ADXP数据中台的连接。 #### 健康检查 ``` GET /api/adxp/health ``` 检查适配器服务健康状态和ADXP连接状态。 #### WebSocket实时推送 ``` ws://localhost:8086/ws/flight-notifications ``` 实时接收来自ADXP数据中台的航班消息推送。 ### 1. 登录 ```http POST /api/adxp/login Content-Type: application/json { "username": "dianxin", "password": "dianxin@123" } ``` 响应: ```json { "success": true, "sessionId": "550e8400-e29b-41d4-a716-446655440000", "message": "登录成功" } ``` ### 2. 接收消息 ```http GET /api/adxp/messages?sessionId=550e8400-e29b-41d4-a716-446655440000 ``` 响应: ```json { "success": true, "messages": [ { "serviceCode": "ARR", "actionCode": "ADD", "content": "..." } ], "message": null } ``` ### 3. 登出 ```http POST /api/adxp/logout Content-Type: application/json { "sessionId": "550e8400-e29b-41d4-a716-446655440000" } ``` ### 4. 健康检查 ```http GET /api/adxp/health ``` 响应: ```json { "status": "UP", "activeSessions": 1 } ``` ## 快速测试 ### API调用示例 #### 1. 检查连接状态 ```bash curl http://localhost:8086/api/adxp/status ``` #### 2. 强制重连 ```bash curl -X POST http://localhost:8086/api/adxp/reconnect ``` #### 3. 获取消息 ```bash curl http://localhost:8086/api/adxp/messages ``` #### 4. 断开连接 ```bash curl -X POST http://localhost:8086/api/adxp/disconnect ``` #### 5. 健康检查 ```bash curl http://localhost:8086/api/adxp/health ``` ## 配置说明 ### 环境变量 | 变量名 | 说明 | 默认值 | |--------|------|--------| | `ADXP_HOST` | ADXP 数据中台主机地址 | localhost | | `ADXP_PORT` | ADXP 数据中台端口 | 7001 | | `ADXP_USERNAME` | ADXP 用户名 | dianxin | | `ADXP_PASSWORD` | ADXP 密码 | dianxin@123 | ### application.yml ```yaml adxp: host: ${ADXP_HOST:localhost} port: ${ADXP_PORT:7001} username: ${ADXP_USERNAME:dianxin} password: ${ADXP_PASSWORD:dianxin@123} ``` ## 部署说明 ### 开发环境 ```bash # 1. 启动适配器(默认指向 localhost) docker compose up -d ``` ### 生产环境 ```bash # 1. 创建环境变量文件 cat > .env << EOF ADXP_HOST=10.10.10.100 # 真实数据中台 IP ADXP_PORT=7001 # 真实数据中台端口 ADXP_USERNAME=dianxin # 真实数据中台用户名 ADXP_PASSWORD=dianxin@123 # 真实数据中台密码 EOF # 2. 启动服务 docker compose up -d ``` ## 开发说明 ### 项目结构 ``` adxp-adapter/ ├── pom.xml # Maven 配置 ├── Dockerfile # Docker 镜像定义 ├── docker-compose.yml # Docker Compose 配置 ├── libs/ # 数据中台 SDK │ ├── adxp-client-2.6.9.jar │ └── mq.allclient-9.0.jar └── src/ # 源代码 ``` ### 核心依赖 - **adxp-client-2.6.9.jar**: 数据中台 SDK - **Apache CXF 3.2.4**: SOAP 协议支持 - **Jackson 1.9.13**: JSON 序列化 - **Spring Boot 2.7.18**: 应用框架 ## 许可证 内部项目