- 在config/dev.ts中添加代理配置,将/api/*请求代理到外部API服务器 - 在bowongAISDK.ts中添加平台检测逻辑,H5环境使用fetch避免CORS - 新增H5专用的文件上传和图像生成方法 - 保持小程序环境使用原有的Taro.uploadFile方法 - 确保跨平台兼容性,解决XMLHttpRequest凭据模式与通配符CORS头冲突 修复错误: - Access-Control-Allow-Origin头在凭据模式下不能使用通配符* - H5环境下uploadFile自动设置withCredentials导致的CORS阻止 |
||
|---|---|---|
| .. | ||
| README.md | ||
| bowongAISDK.ts | ||
| prompt.md | ||
| sdk-server.ts | ||
| types.ts | ||
README.md
SDK Server 使用文档
概述
SDK Server 是一个用于与后端模板服务进行通信的客户端SDK,基于提供的NestJS控制器API设计。
后端API接口
基于以下NestJS控制器:
@Controller()
export class AppController {
@Get()
async getTemplates() // 获取所有模板
@Get(':templateCode')
async getTemplate(@Param('templateCode') templateCode: string) // 获取单个模板
@Post()
async executeTemplate(@Body('imageUrl') imageUrl: string, @Body('templateCode') templateCode: string) // 执行模板
}
快速开始
1. 基础使用
import { bowongAI } from '../sdk';
// 获取所有模板
const templates = await bowongAI.getAllTemplates();
// 获取单个模板
const template = await bowongAI.getTemplate('1');
// 执行模板处理
const result = await bowongAI.executeTemplate('1', 'https://example.com/image.jpg');
2. 使用独立的SDK Server
import { SdkServer } from '../sdk/sdk-server';
const server = new SdkServer('http://localhost:3000');
// 获取模板列表
const templates = await server.getAllTemplates();
// 执行模板
const result = await server.executeTemplate({
templateCode: '1',
imageUrl: 'https://example.com/image.jpg'
});
3. 配置自定义服务器
import { BowongAISDK } from '../sdk';
// 使用自定义模板服务器URL
const sdk = new BowongAISDK('http://your-template-server.com');
const templates = await sdk.getAllTemplates();
API 方法
getAllTemplates()
获取所有可用的模板列表。
返回值: Promise<Template[]>
getTemplate(templateCode: string)
根据模板代码获取单个模板信息。
参数:
templateCode: 模板代码
返回值: Promise<Template | null>
executeTemplate(templateCode: string, imageUrl: string)
执行指定模板的图像处理。
参数:
templateCode: 模板代码imageUrl: 要处理的图像URL
返回值: Promise<ExecuteTemplateResult>
getTemplatesByCodes(templateCodes: string[])
批量获取指定的模板。
参数:
templateCodes: 模板代码数组
返回值: Promise<Template[]>
checkTemplateServerConnection()
检查模板服务器的连接状态。
返回值: Promise<boolean>
数据类型
Template
interface Template {
code: string; // 模板唯一标识码
name: string; // 模板名称
description: string; // 模板详细描述
creditCost: number; // 积分消耗
version: string; // 版本号
input: string; // 原始图片
output: string; // 输出图片
tags: string[]; // 标签数组
}
ExecuteTemplateResult
interface ExecuteTemplateResult {
result: string | null; // 执行结果
success: boolean; // 是否成功
message: string; // 状态消息
}
ApiResponse (后端响应格式)
interface ApiResponse<T = any> {
status: boolean | string; // 响应状态
data: T; // 响应数据
msg: string; // 响应消息
}
配置
环境配置
在 sdk-server-config.ts 中配置不同环境的服务器地址:
// 开发环境
export const DEV_CONFIG = {
baseUrl: 'http://localhost:3000',
timeout: 30000,
};
// 生产环境
export const PROD_CONFIG = {
baseUrl: 'https://api.your-domain.com',
timeout: 30000,
};
错误处理
try {
const templates = await bowongAI.getAllTemplates();
} catch (error) {
console.error('获取模板失败:', error);
// 处理错误
}
示例
查看 sdk-server-example.ts 文件获取完整的使用示例。
注意事项
- 确保后端服务器已启动并可访问
- 检查网络连接和服务器地址配置
- 处理可能的网络错误和超时
- 在生产环境中使用正确的服务器地址