265 lines
4.5 KiB
Markdown
265 lines
4.5 KiB
Markdown
# 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": "<xml>...</xml>"
|
||
}
|
||
],
|
||
"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**: 应用框架
|
||
|
||
## 许可证
|
||
|
||
内部项目
|