456 lines
11 KiB
Markdown
456 lines
11 KiB
Markdown
# API 文档 - WSDL 转换功能
|
||
|
||
## 元数据
|
||
- **需求编号**:002-07
|
||
- **需求名称**:WSDL 转换
|
||
- **创建时间**:2026-02-05
|
||
- **创建人**:AI Assistant
|
||
- **版本**:v1.0.0
|
||
|
||
## API 概述
|
||
WSDL 转换 API 提供将 WSDL 文件转换为 Apex 类的功能,支持从 URL 和 XML 两种方式进行转换,并提供转换历史查询、转换详情查询、删除转换记录等功能。
|
||
|
||
**基础路径**:`/wsdl`
|
||
|
||
**模块**:`datai-salesforce-apex`
|
||
|
||
## 接口列表
|
||
|
||
### 1. 从 URL 转换 WSDL
|
||
|
||
- **功能描述**:从 WSDL URL 转换 WSDL 到 Apex 类
|
||
- **请求方式**:POST
|
||
- **请求路径**:`/wsdl/conversion/convertFromUrl`
|
||
- **权限要求**:`apex:wsdl:convert`
|
||
|
||
#### 请求参数
|
||
|
||
| 参数名 | 类型 | 必填 | 说明 |
|
||
|--------|------|------|------|
|
||
| wsdlUrl | String | 是 | WSDL URL,长度 1-500 字符 |
|
||
| packageName | String | 否 | 包名称,长度 0-255 字符 |
|
||
| generateAsync | Boolean | 否 | 是否生成异步方法,默认 false |
|
||
|
||
#### 请求示例
|
||
|
||
```json
|
||
{
|
||
"wsdlUrl": "https://example.com/service?wsdl",
|
||
"packageName": "com.example",
|
||
"generateAsync": true
|
||
}
|
||
```
|
||
|
||
#### 响应参数
|
||
|
||
| 参数名 | 类型 | 说明 |
|
||
|--------|------|------|
|
||
| code | Integer | 状态码(200 成功,其他失败) |
|
||
| message | String | 提示信息 |
|
||
| data | Object | 转换结果 |
|
||
| data.conversionId | Long | 转换记录 ID |
|
||
| data.success | Boolean | 转换是否成功 |
|
||
| data.apexClasses | Array | 生成的 Apex 类列表 |
|
||
| data.warnings | Array | 警告信息列表 |
|
||
| data.errors | Array | 错误信息列表 |
|
||
|
||
#### 成功响应示例
|
||
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "WSDL 转换成功",
|
||
"data": {
|
||
"conversionId": 1,
|
||
"success": true,
|
||
"apexClasses": [
|
||
{
|
||
"classId": 1,
|
||
"className": "ExampleService",
|
||
"classType": "Class",
|
||
"classBody": "public class ExampleService { ... }"
|
||
},
|
||
{
|
||
"classId": 2,
|
||
"className": "ExampleServiceRequest",
|
||
"classType": "Class",
|
||
"classBody": "public class ExampleServiceRequest { ... }"
|
||
}
|
||
],
|
||
"warnings": [
|
||
"警告:某些类型可能无法完全转换"
|
||
],
|
||
"errors": []
|
||
}
|
||
}
|
||
```
|
||
|
||
#### 失败响应示例
|
||
|
||
```json
|
||
{
|
||
"code": 400,
|
||
"message": "WSDL URL 不能为空",
|
||
"data": null
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 2. 从 XML 转换 WSDL
|
||
|
||
- **功能描述**:从 WSDL XML 内容转换 WSDL 到 Apex 类
|
||
- **请求方式**:POST
|
||
- **请求路径**:`/wsdl/conversion/convertFromXml`
|
||
- **权限要求**:`apex:wsdl:convert`
|
||
|
||
#### 请求参数
|
||
|
||
| 参数名 | 类型 | 必填 | 说明 |
|
||
|--------|------|------|------|
|
||
| wsdlXml | String | 是 | WSDL XML 内容 |
|
||
| packageName | String | 否 | 包名称,长度 0-255 字符 |
|
||
| generateAsync | Boolean | 否 | 是否生成异步方法,默认 false |
|
||
|
||
#### 请求示例
|
||
|
||
```json
|
||
{
|
||
"wsdlXml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>...",
|
||
"packageName": "com.example",
|
||
"generateAsync": false
|
||
}
|
||
```
|
||
|
||
#### 响应参数
|
||
|
||
| 参数名 | 类型 | 说明 |
|
||
|--------|------|------|
|
||
| code | Integer | 状态码(200 成功,其他失败) |
|
||
| message | String | 提示信息 |
|
||
| data | Object | 转换结果 |
|
||
| data.conversionId | Long | 转换记录 ID |
|
||
| data.success | Boolean | 转换是否成功 |
|
||
| data.apexClasses | Array | 生成的 Apex 类列表 |
|
||
| data.warnings | Array | 警告信息列表 |
|
||
| data.errors | Array | 错误信息列表 |
|
||
|
||
#### 成功响应示例
|
||
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "WSDL 转换成功",
|
||
"data": {
|
||
"conversionId": 2,
|
||
"success": true,
|
||
"apexClasses": [
|
||
{
|
||
"classId": 3,
|
||
"className": "MyService",
|
||
"classType": "Class",
|
||
"classBody": "public class MyService { ... }"
|
||
}
|
||
],
|
||
"warnings": [],
|
||
"errors": []
|
||
}
|
||
}
|
||
```
|
||
|
||
#### 失败响应示例
|
||
|
||
```json
|
||
{
|
||
"code": 400,
|
||
"message": "WSDL XML 内容不能为空",
|
||
"data": null
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 3. 查询转换历史列表
|
||
|
||
- **功能描述**:分页查询 WSDL 转换历史记录,支持多种筛选条件
|
||
- **请求方式**:GET
|
||
- **请求路径**:`/wsdl/conversion/list`
|
||
- **权限要求**:`apex:wsdl:list`
|
||
|
||
#### 请求参数
|
||
|
||
| 参数名 | 类型 | 必填 | 说明 |
|
||
|--------|------|------|------|
|
||
| pageNum | Integer | 否 | 当前页码,默认 1 |
|
||
| pageSize | Integer | 否 | 每页记录数,默认 10 |
|
||
| status | String | 否 | 转换状态(success/failed) |
|
||
| startTime | String | 否 | 开始时间(格式:yyyy-MM-dd HH:mm:ss) |
|
||
| endTime | String | 否 | 结束时间(格式:yyyy-MM-dd HH:mm:ss) |
|
||
|
||
#### 请求示例
|
||
|
||
```
|
||
GET /wsdl/conversion/list?status=success&pageNum=1&pageSize=20
|
||
```
|
||
|
||
#### 响应参数
|
||
|
||
| 参数名 | 类型 | 说明 |
|
||
|--------|------|------|
|
||
| code | Integer | 状态码(200 成功,其他失败) |
|
||
| message | String | 提示信息 |
|
||
| data | Object | 分页数据 |
|
||
| data.total | Long | 总记录数 |
|
||
| data.rows | Array | 转换记录列表 |
|
||
| data.rows[].conversionId | Long | 转换记录 ID |
|
||
| data.rows[].orgType | String | 组织类型 |
|
||
| data.rows[].orgId | String | 组织 ID |
|
||
| data.rows[].wsdlUrl | String | WSDL URL |
|
||
| data.rows[].packageName | String | 包名称 |
|
||
| data.rows[].generateAsync | Boolean | 是否生成异步方法 |
|
||
| data.rows[].status | String | 转换状态 |
|
||
| data.rows[].errorMessage | String | 错误消息 |
|
||
| data.rows[].createTime | String | 创建时间 |
|
||
| data.rows[].updateTime | String | 更新时间 |
|
||
|
||
#### 成功响应示例
|
||
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "查询成功",
|
||
"data": {
|
||
"total": 50,
|
||
"rows": [
|
||
{
|
||
"conversionId": 1,
|
||
"orgType": "source",
|
||
"orgId": "00Dxx0000001GWP",
|
||
"wsdlUrl": "https://example.com/service?wsdl",
|
||
"packageName": "com.example",
|
||
"generateAsync": true,
|
||
"status": "success",
|
||
"errorMessage": null,
|
||
"createTime": "2026-02-05 10:00:00",
|
||
"updateTime": "2026-02-05 10:00:30"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 4. 查询转换记录详情
|
||
|
||
- **功能描述**:根据 ID 查询单个 WSDL 转换记录的详细信息
|
||
- **请求方式**:GET
|
||
- **请求路径**:`/wsdl/conversion/{conversionId}`
|
||
- **权限要求**:`apex:wsdl:query`
|
||
|
||
#### 请求参数
|
||
|
||
| 参数名 | 类型 | 必填 | 说明 |
|
||
|--------|------|------|------|
|
||
| conversionId | Long | 是 | 转换记录 ID,路径参数 |
|
||
|
||
#### 请求示例
|
||
|
||
```
|
||
GET /wsdl/conversion/1
|
||
```
|
||
|
||
#### 响应参数
|
||
|
||
| 参数名 | 类型 | 说明 |
|
||
|--------|------|------|
|
||
| code | Integer | 状态码(200 成功,其他失败) |
|
||
| message | String | 提示信息 |
|
||
| data | Object | 转换记录详情 |
|
||
| data.conversionId | Long | 转换记录 ID |
|
||
| data.orgType | String | 组织类型 |
|
||
| data.orgId | String | 组织 ID |
|
||
| data.wsdlUrl | String | WSDL URL |
|
||
| data.wsdlXml | String | WSDL XML 内容 |
|
||
| data.packageName | String | 包名称 |
|
||
| data.generateAsync | Boolean | 是否生成异步方法 |
|
||
| data.status | String | 转换状态 |
|
||
| data.errorMessage | String | 错误消息 |
|
||
| data.createTime | String | 创建时间 |
|
||
| data.updateTime | String | 更新时间 |
|
||
| data.apexClasses | Array | 生成的 Apex 类列表 |
|
||
| data.apexClasses[].classId | Long | 类 ID |
|
||
| data.apexClasses[].className | String | 类名称 |
|
||
| data.apexClasses[].classType | String | 类类型 |
|
||
| data.apexClasses[].classBody | String | 类代码 |
|
||
| data.apexClasses[].namespace | String | 命名空间 |
|
||
| data.apexClasses[].isAsync | Boolean | 是否异步 |
|
||
| data.apexClasses[].createTime | String | 创建时间 |
|
||
|
||
#### 成功响应示例
|
||
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "查询成功",
|
||
"data": {
|
||
"conversionId": 1,
|
||
"orgType": "source",
|
||
"orgId": "00Dxx0000001GWP",
|
||
"wsdlUrl": "https://example.com/service?wsdl",
|
||
"wsdlXml": null,
|
||
"packageName": "com.example",
|
||
"generateAsync": true,
|
||
"status": "success",
|
||
"errorMessage": null,
|
||
"createTime": "2026-02-05 10:00:00",
|
||
"updateTime": "2026-02-05 10:00:30",
|
||
"apexClasses": [
|
||
{
|
||
"classId": 1,
|
||
"className": "ExampleService",
|
||
"classType": "Class",
|
||
"classBody": "public class ExampleService { ... }",
|
||
"namespace": "com.example",
|
||
"isAsync": false,
|
||
"createTime": "2026-02-05 10:00:00"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
#### 失败响应示例
|
||
|
||
```json
|
||
{
|
||
"code": 404,
|
||
"message": "转换记录不存在",
|
||
"data": null
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 5. 删除转换记录
|
||
|
||
- **功能描述**:删除指定的 WSDL 转换记录
|
||
- **请求方式**:DELETE
|
||
- **请求路径**:`/wsdl/conversion/{conversionId}`
|
||
- **权限要求**:`apex:wsdl:delete`
|
||
|
||
#### 请求参数
|
||
|
||
| 参数名 | 类型 | 必填 | 说明 |
|
||
|--------|------|------|------|
|
||
| conversionId | Long | 是 | 转换记录 ID,路径参数 |
|
||
|
||
#### 请求示例
|
||
|
||
```
|
||
DELETE /wsdl/conversion/1
|
||
```
|
||
|
||
#### 响应参数
|
||
|
||
| 参数名 | 类型 | 说明 |
|
||
|--------|------|------|
|
||
| code | Integer | 状态码(200 成功,其他失败) |
|
||
| message | String | 提示信息 |
|
||
| data | Integer | 删除的记录数 |
|
||
|
||
#### 成功响应示例
|
||
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "删除成功",
|
||
"data": 1
|
||
}
|
||
```
|
||
|
||
#### 失败响应示例
|
||
|
||
```json
|
||
{
|
||
"code": 404,
|
||
"message": "转换记录不存在",
|
||
"data": null
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 6. 批量删除转换记录
|
||
|
||
- **功能描述**:批量删除 WSDL 转换记录
|
||
- **请求方式**:DELETE
|
||
- **请求路径**:`/wsdl/conversion/batch`
|
||
- **权限要求**:`apex:wsdl:delete`
|
||
|
||
#### 请求参数
|
||
|
||
| 参数名 | 类型 | 必填 | 说明 |
|
||
|--------|------|------|------|
|
||
| conversionIds | Array | 是 | 转换记录 ID 列表 |
|
||
|
||
#### 请求示例
|
||
|
||
```json
|
||
{
|
||
"conversionIds": [1, 2, 3]
|
||
}
|
||
```
|
||
|
||
#### 响应参数
|
||
|
||
| 参数名 | 类型 | 说明 |
|
||
|--------|------|------|
|
||
| code | Integer | 状态码(200 成功,其他失败) |
|
||
| message | String | 提示信息 |
|
||
| data | Integer | 删除的记录数 |
|
||
|
||
#### 成功响应示例
|
||
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "批量删除成功,删除 3 条记录",
|
||
"data": 3
|
||
}
|
||
```
|
||
|
||
#### 失败响应示例
|
||
|
||
```json
|
||
{
|
||
"code": 400,
|
||
"message": "转换记录 ID 列表不能为空",
|
||
"data": null
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 错误码
|
||
|
||
| 错误码 | 错误名称 | 说明 | HTTP 状态码 |
|
||
|--------|---------|------|-------------|
|
||
| WSDL_001 | WSDL_URL_EMPTY | WSDL URL 不能为空 | 400 |
|
||
| WSDL_002 | WSDL_XML_EMPTY | WSDL XML 内容不能为空 | 400 |
|
||
| WSDL_003 | WSDL_CONVERT_FAILED | WSDL 转换失败 | 500 |
|
||
| WSDL_004 | CONVERSION_NOT_FOUND | 转换记录不存在 | 404 |
|
||
| WSDL_005 | CONVERSION_ID_EMPTY | 转换记录 ID 不能为空 | 400 |
|
||
| WSDL_006 | BATCH_DELETE_IDS_EMPTY | 批量删除 ID 列表不能为空 | 400 |
|
||
| WSDL_007 | WSDL_PARSE_FAILED | WSDL 解析失败 | 500 |
|
||
| WSDL_008 | APEX_CLASS_GENERATE_FAILED | Apex 类生成失败 | 500 |
|
||
|
||
## 相关文档
|
||
- [需求文档](../requirements/sub/2026-01-28-002-07-WSDL转换.md)
|
||
- [设计文档](../design/2026-02-03-002-07-WSDL转换-设计.md)
|
||
- [决策记录](../decisions/2026-02-03-002-07-ADR-WSDL转换技术选型.md)
|
||
- [SQL 脚本](../sql/2026-02-03-002-07-WSDL转换.sql)
|
||
- [提示词文档](../prompts/2026-02-03-002-07-prompt-WSDL转换.md)
|
||
- [变更日志](../changelog/2026-02-05-002-07-changelog.md)
|
||
- [复盘文档](../retros/2026-02-05-002-07-retro.md)
|