Files
tiantian-system/content/docs/getting-started/sdk-installation.md
2026-04-08 17:10:58 +08:00

210 lines
3.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 安装 SDK 与初始化
description: 详细指南:安装 @websopy/sdk,配置 WebsopyClient发送第一个 API 请求。
category: getting-started
order: 2
---
# 安装 SDK 与初始化
> 详细指南:安装 @websopy/sdk配置 WebsopyClient发送第一个 API 请求。
## 📦 SDK 概述
Websopy 提供多种语言的 SDK
| 语言 | SDK | 源码 |
|------|-----|------|
| JavaScript/TypeScript | `@websopy/sdk` | [GitHub](https://github.com/websopy/sdk-js) |
| Python | `websopy-sdk` | [GitHub](https://github.com/websopy/sdk-python) |
| Go | `github.com/websopy/sdk-go` | [GitHub](https://github.com/websopy/sdk-go) |
| Java | `com.websopy:sdk` | [GitHub](https://github.com/websopy/sdk-java) |
本教程以 JavaScript/TypeScript 为例。
## 🚀 安装
### npm
```bash
npm install @websopy/sdk
```
### yarn
```bash
yarn add @websopy/sdk
```
### pnpm
```bash
pnpm add @websopy/sdk
```
### CDN浏览器端
```html
<script src="https://unpkg.com/@websopy/sdk/dist/websopy.min.js"></script>
```
## ⚙️ 初始化配置
### 基本配置
```typescript
import { WebsopyClient } from '@websopy/sdk'
const client = new WebsopyClient({
apiKey: 'ws_live_xxxxxxxxxxxx',
// API 版本(可选,默认 v1
version: 'v1',
// 超时时间(毫秒)
timeout: 30000,
// 重试次数
retries: 3
})
```
### 多环境配置
```typescript
const config = {
// 开发环境
dev: {
apiKey: 'ws_test_xxxxx',
baseUrl: 'https://api-dev.websopy.com/v1'
},
// 生产环境
prod: {
apiKey: process.env.WEBSOPY_API_KEY,
baseUrl: 'https://api.websopy.com/v1'
}
}
const client = new WebsopyClient(
process.env.NODE_ENV === 'production' ? config.prod : config.dev
)
```
### 环境变量
创建 `.env` 文件:
```env
WEBSOPY_API_KEY=ws_live_xxxxxxxxxxxx
WEBSOPY_BASE_URL=https://api.websopy.com/v1
WEBSOPY_TIMEOUT=30000
```
```typescript
import 'dotenv/config'
import { WebsopyClient } from '@websopy/sdk'
const client = new WebsopyClient({
apiKey: process.env.WEBSOPY_API_KEY,
baseUrl: process.env.WEBSOPY_BASE_URL
})
```
## 📚 API 模块
SDK 按功能模块组织:
```typescript
// 用户管理
client.user
// 项目管理
client.project
// 文件存储
client.storage
// AI 功能
client.ai
// 支付功能
client.payment
// Webhook
client.webhook
```
## 🧪 完整示例
```typescript
import { WebsopyClient } from '@websopy/sdk'
async function demo() {
const client = new WebsopyClient({
apiKey: process.env.WEBSOPY_API_KEY
})
// 1. 获取用户信息
const user = await client.user.getProfile()
console.log('用户:', user.name)
// 2. 列出项目
const { items: projects } = await client.project.list({
limit: 10,
status: 'active'
})
// 3. 创建项目
const project = await client.project.create({
name: '新项目',
description: '通过 SDK 创建'
})
// 4. 上传文件
const file = await client.storage.upload({
file: './demo.pdf',
folder: 'documents'
})
console.log('文件上传成功:', file.url)
}
demo().catch(console.error)
```
## 🔧 TypeScript 类型
SDK 提供完整的 TypeScript 类型定义:
```typescript
import type {
Project,
User,
CreateProjectOptions
} from '@websopy/sdk/types'
function createProject(options: CreateProjectOptions): Promise<Project> {
return client.project.create(options)
}
```
## ❓ 常见问题
### Q: ESM 和 CommonJS 兼容?
是的SDK 同时支持两种模块格式:
```typescript
// ESM
import { WebsopyClient } from '@websopy/sdk'
// CommonJS
const { WebsopyClient } = require('@websopy/sdk')
```
### Q: 如何调试?
```typescript
const client = new WebsopyClient({
apiKey: process.env.WEBSOPY_API_KEY,
debug: true // 打印详细日志
})
```