327 lines
16 KiB
Markdown
327 lines
16 KiB
Markdown
|
|
# CLAUDE.md
|
|||
|
|
|
|||
|
|
本文件为 Claude Code (claude.ai/claude-code) 在此代码仓库中工作时提供指导。
|
|||
|
|
|
|||
|
|
## 项目概述
|
|||
|
|
|
|||
|
|
即梦 AI 免费 API 服务 - 逆向工程的 API 服务器,提供 OpenAI 兼容接口,封装即梦 AI 的图像和视频生成能力。
|
|||
|
|
|
|||
|
|
**版本:** v0.8.6
|
|||
|
|
|
|||
|
|
**核心功能:**
|
|||
|
|
- 文生图:支持 jimeng-5.0、jimeng-4.6、jimeng-4.5 等多款模型,最高 4K 分辨率
|
|||
|
|
- 图生图:多图合成,支持 1-10 张输入图片
|
|||
|
|
- 视频生成:jimeng-video-3.5-pro 等模型,支持首帧/尾帧控制
|
|||
|
|
- Seedance 2.0:多模态智能视频生成,模型名 `jimeng-video-seedance-2.0`(兼容 `seedance-2.0`),支持图片/视频/音频混合上传,@1、@2 占位符引用素材,4-15 秒时长
|
|||
|
|
- OpenAI 兼容:完全兼容 OpenAI API 格式,无缝对接现有客户端
|
|||
|
|
- 多账号支持:支持多个 sessionid 轮询使用
|
|||
|
|
|
|||
|
|
## 构建和开发命令
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 安装依赖
|
|||
|
|
npm install
|
|||
|
|
|
|||
|
|
# 安装 Chromium 浏览器(Seedance 模型需要)
|
|||
|
|
npx playwright-core install chromium --with-deps
|
|||
|
|
|
|||
|
|
# 开发模式(热重载)
|
|||
|
|
npm run dev
|
|||
|
|
|
|||
|
|
# 生产环境构建
|
|||
|
|
npm run build
|
|||
|
|
|
|||
|
|
# 启动生产服务
|
|||
|
|
npm start
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Docker 命令
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 构建 Docker 镜像
|
|||
|
|
docker build -t jimeng-free-api-all:latest .
|
|||
|
|
|
|||
|
|
# 运行容器
|
|||
|
|
docker run -it -d --init --name jimeng-free-api-all -p 8000:8000 -e TZ=Asia/Shanghai jimeng-free-api-all:latest
|
|||
|
|
|
|||
|
|
# 使用 Docker Hub 预构建镜像
|
|||
|
|
docker pull wwwzhouhui569/jimeng-free-api-all:latest
|
|||
|
|
docker run -it -d --init --name jimeng-free-api-all -p 8000:8000 -e TZ=Asia/Shanghai wwwzhouhui569/jimeng-free-api-all:latest
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 项目架构
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
src/
|
|||
|
|
├── index.ts # 应用入口
|
|||
|
|
├── daemon.ts # 守护进程管理
|
|||
|
|
├── api/
|
|||
|
|
│ ├── controllers/ # 业务逻辑控制器
|
|||
|
|
│ │ ├── core.ts # 核心工具(Token处理、积分管理、请求封装)
|
|||
|
|
│ │ ├── images.ts # 图像生成逻辑(文生图、图生图)
|
|||
|
|
│ │ ├── videos.ts # 视频生成逻辑(含 Seedance 2.0)
|
|||
|
|
│ │ └── chat.ts # 对话补全逻辑
|
|||
|
|
│ ├── routes/ # API 路由定义
|
|||
|
|
│ │ ├── index.ts # 路由聚合器
|
|||
|
|
│ │ ├── images.ts # /v1/images/* 端点
|
|||
|
|
│ │ ├── videos.ts # /v1/videos/* 端点
|
|||
|
|
│ │ ├── video.ts # /v1/video/* 端点(videos 的包装路由)
|
|||
|
|
│ │ ├── chat.ts # /v1/chat/* 端点
|
|||
|
|
│ │ ├── models.ts # /v1/models 端点
|
|||
|
|
│ │ ├── ping.ts # /ping 健康检查端点
|
|||
|
|
│ │ └── token.ts # /token/* Token管理端点
|
|||
|
|
│ └── consts/
|
|||
|
|
│ └── exceptions.ts # API 异常定义
|
|||
|
|
└── lib/
|
|||
|
|
├── server.ts # Koa 服务器配置(含中间件栈)
|
|||
|
|
├── browser-service.ts # 浏览器代理服务(Seedance shark 反爬绕过)
|
|||
|
|
├── config.ts # 配置管理
|
|||
|
|
├── logger.ts # 日志工具
|
|||
|
|
├── util.ts # 辅助工具函数
|
|||
|
|
├── environment.ts # 环境变量
|
|||
|
|
├── initialize.ts # 初始化逻辑
|
|||
|
|
├── http-status-codes.ts # HTTP 状态码
|
|||
|
|
├── request/
|
|||
|
|
│ └── Request.ts # 请求解析与验证(含文件上传规范化)
|
|||
|
|
├── response/
|
|||
|
|
│ ├── Response.ts # 响应包装器
|
|||
|
|
│ ├── Body.ts # 响应体
|
|||
|
|
│ └── FailureBody.ts # 错误响应体
|
|||
|
|
├── exceptions/
|
|||
|
|
│ ├── Exception.ts # 基础异常类
|
|||
|
|
│ └── APIException.ts # API 异常类
|
|||
|
|
├── interfaces/
|
|||
|
|
│ └── ICompletionMessage.ts # 对话消息接口
|
|||
|
|
└── configs/ # 配置模式
|
|||
|
|
├── model-config.ts # 模型配置(模型参数、分辨率映射等)
|
|||
|
|
├── service-config.ts # 服务配置
|
|||
|
|
└── system-config.ts # 系统配置
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## API 端点
|
|||
|
|
|
|||
|
|
| 端点 | 方法 | 说明 |
|
|||
|
|
|------|------|------|
|
|||
|
|
| `/v1/chat/completions` | POST | OpenAI 兼容的对话接口(用于图像/视频生成) |
|
|||
|
|
| `/v1/images/generations` | POST | 文生图/图生图接口(支持 images 可选参数) |
|
|||
|
|
| `/v1/images/compositions` | POST | 图生图接口(支持文件上传,向后兼容) |
|
|||
|
|
| `/v1/videos/generations` | POST | 视频生成接口(含 Seedance 2.0 / 2.0-fast) |
|
|||
|
|
| `/v1/video/generations` | POST | 视频生成接口(别名路由) |
|
|||
|
|
| `/v1/models` | GET | 获取可用模型列表 |
|
|||
|
|
| `/token/check` | POST | 检查 Token 有效性 |
|
|||
|
|
| `/token/points` | POST | 查询账户积分 |
|
|||
|
|
| `/ping` | GET | 健康检查端点 |
|
|||
|
|
|
|||
|
|
## 关键技术细节
|
|||
|
|
|
|||
|
|
### 认证方式
|
|||
|
|
- 使用即梦网站的 `sessionid` Cookie 作为 Bearer Token
|
|||
|
|
- 多账号支持:逗号分隔多个 sessionid:`Authorization: Bearer sessionid1,sessionid2`
|
|||
|
|
- 每次请求随机选择一个 sessionid 使用
|
|||
|
|
|
|||
|
|
### 模型映射
|
|||
|
|
|
|||
|
|
#### 图像模型
|
|||
|
|
| 用户模型名 | 内部模型名 | Draft 版本 | 说明 |
|
|||
|
|
|-----------|-----------|-----------|------|
|
|||
|
|
| `jimeng-5.0` | `high_aes_general_v50` | 3.3.9 | 5.0 正式版(原 jimeng-5.0-preview),最新模型 |
|
|||
|
|
| `jimeng-4.6` | `high_aes_general_v42` | 3.3.9 | 推荐使用 |
|
|||
|
|
| `jimeng-4.5` | `high_aes_general_v40l` | 3.3.4 | 高质量模型 |
|
|||
|
|
| `jimeng-4.1` | `high_aes_general_v41` | 3.3.4 | 高质量模型 |
|
|||
|
|
| `jimeng-4.0` | `high_aes_general_v40` | 3.3.4 | 稳定版本 |
|
|||
|
|
| `jimeng-3.1` | `high_aes_general_v30l_art_fangzhou` | - | 艺术风格 |
|
|||
|
|
| `jimeng-3.0` | `high_aes_general_v30l` | - | 通用模型 |
|
|||
|
|
| `jimeng-2.1` | - | - | 旧版模型 |
|
|||
|
|
| `jimeng-2.0-pro` | - | - | 旧版专业模型 |
|
|||
|
|
| `jimeng-2.0` | - | - | 旧版模型 |
|
|||
|
|
| `jimeng-1.4` | - | - | 早期模型 |
|
|||
|
|
| `jimeng-xl-pro` | - | - | XL 专业模型 |
|
|||
|
|
|
|||
|
|
#### 视频模型
|
|||
|
|
| 用户模型名 | 内部模型名 | 说明 |
|
|||
|
|
|-----------|-----------|------|
|
|||
|
|
| `jimeng-video-3.5-pro` | `dreamina_ic_generate_video_model_vgfm_3.5_pro` | 最新视频模型 |
|
|||
|
|
| `jimeng-video-3.0` | - | 视频生成 3.0 |
|
|||
|
|
| `jimeng-video-3.0-pro` | - | 视频生成 3.0 专业版 |
|
|||
|
|
| `jimeng-video-2.0` | - | 视频生成 2.0 |
|
|||
|
|
| `jimeng-video-2.0-pro` | - | 视频生成 2.0 专业版 |
|
|||
|
|
| `jimeng-video-seedance-2.0` | `dreamina_seedance_40_pro` | Seedance 2.0(上游标准名称,推荐) |
|
|||
|
|
| `seedance-2.0` | `dreamina_seedance_40_pro` | 多图智能视频生成(向后兼容别名) |
|
|||
|
|
| `seedance-2.0-pro` | `dreamina_seedance_40_pro` | 多图智能视频生成专业版(向后兼容别名) |
|
|||
|
|
| `jimeng-video-seedance-2.0-fast` | `dreamina_seedance_40` | Seedance 2.0-fast 快速版(上游标准名称) |
|
|||
|
|
| `seedance-2.0-fast` | `dreamina_seedance_40` | Seedance 2.0-fast 快速版(向后兼容别名) |
|
|||
|
|
|
|||
|
|
### 请求参数
|
|||
|
|
|
|||
|
|
#### 图像生成参数 (`/v1/images/generations`)
|
|||
|
|
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|||
|
|
|------|------|------|--------|------|
|
|||
|
|
| model | string | 否 | jimeng-4.5 | 模型名称 |
|
|||
|
|
| prompt | string | 是 | - | 提示词,jimeng-4.x/5.x 支持多图生成 |
|
|||
|
|
| images | array | 否 | - | 图片URL数组(1-10张),提供则走图生图模式,不提供则走文生图模式 |
|
|||
|
|
| negative_prompt | string | 否 | "" | 反向提示词 |
|
|||
|
|
| ratio | string | 否 | 1:1 | 宽高比:1:1, 4:3, 3:4, 16:9, 9:16, 3:2, 2:3, 21:9 |
|
|||
|
|
| resolution | string | 否 | 2k | 分辨率:1k, 2k, 4k |
|
|||
|
|
| sample_strength | float | 否 | 0.5 | 精细度 0.0-1.0 |
|
|||
|
|
| response_format | string | 否 | url | url 或 b64_json |
|
|||
|
|
|
|||
|
|
**说明:**
|
|||
|
|
- 当 `images` 参数为空或不提供时,接口执行文生图功能
|
|||
|
|
- 当 `images` 参数提供(1-10张图片)时,接口执行图生图功能
|
|||
|
|
- 支持 `application/json`(images 为 URL 数组)和 `multipart/form-data`(通过 images 字段上传文件)两种请求格式
|
|||
|
|
- 图生图模式下,响应会额外包含 `input_images` 和 `composition_type` 字段
|
|||
|
|
|
|||
|
|
#### 图生图参数 (`/v1/images/compositions`) - 向后兼容
|
|||
|
|
- 与 `/v1/images/generations` 相同的参数
|
|||
|
|
- `images` 字段为必填(1-10张图片)
|
|||
|
|
- 额外支持 multipart/form-data 文件上传
|
|||
|
|
|
|||
|
|
#### 视频生成参数 (`/v1/videos/generations`)
|
|||
|
|
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|||
|
|
|------|------|------|--------|------|
|
|||
|
|
| model | string | 否 | jimeng-video-3.0 | 模型名称 |
|
|||
|
|
| prompt | string | 否 | - | 视频描述(图生视频时可选) |
|
|||
|
|
| ratio | string | 否 | 1:1 | 宽高比:1:1, 4:3, 3:4, 16:9, 9:16 |
|
|||
|
|
| resolution | string | 否 | 720p | 分辨率:480p, 720p, 1080p |
|
|||
|
|
| duration | number | 否 | 5 | 时长:4-15秒(Seedance)、5 或 10 秒(普通) |
|
|||
|
|
| file_paths / filePaths | array | 否 | [] | 首帧/尾帧图片 URL |
|
|||
|
|
| files | file[] | 否 | - | 上传的素材文件(图片/视频/音频,multipart) |
|
|||
|
|
|
|||
|
|
#### Seedance 2.0 / 2.0-fast 专用参数
|
|||
|
|
- 使用 `unified_edit_input` 结构,包含 `material_list` 和 `meta_list`
|
|||
|
|
- 支持多模态素材混合上传:图片(ImageX)、视频/音频(VOD)
|
|||
|
|
- 素材类型自动检测:通过 MIME 类型或文件扩展名判断(image/video/audio)
|
|||
|
|
- 上游标准模型名:`jimeng-video-seedance-2.0`(兼容 `seedance-2.0`、`seedance-2.0-pro`)
|
|||
|
|
- 快速版模型名:`jimeng-video-seedance-2.0-fast`(兼容 `seedance-2.0-fast`)
|
|||
|
|
- 内部模型(标准版):`dreamina_seedance_40_pro`,benefit_type:`dreamina_video_seedance_20_pro`
|
|||
|
|
- 内部模型(快速版):`dreamina_seedance_40`,benefit_type:`dreamina_seedance_20_fast`(注意:无 `video_` 前缀)
|
|||
|
|
- Draft 版本:3.3.9
|
|||
|
|
- 时长范围:4-15 秒(连续范围,与上游 iptag/jimeng-api 一致)
|
|||
|
|
- 提示词占位符:`@1`、`@2`、`@图1`、`@图2`、`@image1`、`@image2` 引用上传的素材
|
|||
|
|
- 支持的素材格式:图片(jpg/png/webp/gif/bmp)、视频(mp4/mov/m4v)、音频(mp3/wav)
|
|||
|
|
|
|||
|
|
### Shark 反爬与浏览器代理(v0.8.4)
|
|||
|
|
- 即梦对 Seedance 的 `/mweb/v1/aigc_draft/generate` 接口启用了 shark 安全中间件,要求请求携带 `a_bogus` 签名
|
|||
|
|
- `a_bogus` 由字节跳动 `bdms` SDK 在浏览器中生成,依赖真实浏览器环境(Canvas, WebGL, DOM),Node.js 无法直接运行
|
|||
|
|
- 解决方案:通过 `BrowserService`(`src/lib/browser-service.ts`)使用 Playwright 启动 headless Chromium,`bdms` SDK 自动拦截 `fetch` 并注入 `a_bogus`
|
|||
|
|
- 仅 Seedance 的 generate 请求走浏览器代理,其他请求继续用 Node.js `axios`
|
|||
|
|
- 浏览器懒启动,首次 Seedance 请求时创建;每个 sessionId 独立会话;10 分钟空闲自动清理
|
|||
|
|
- 资源拦截:屏蔽图片/字体/CSS,仅允许 bdms SDK 相关脚本(白名单域名:`vlabstatic.com`、`bytescm.com`、`jianying.com`、`byteimg.com`)
|
|||
|
|
|
|||
|
|
### 文件上传
|
|||
|
|
- 支持 multipart/form-data 文件上传
|
|||
|
|
- koa-body 配置最大文件大小 100MB
|
|||
|
|
- files 字段可以是对象或数组格式(在 Request.ts 中自动规范化)
|
|||
|
|
- 支持 formLimit/jsonLimit/textLimit:100mb
|
|||
|
|
|
|||
|
|
### 上传通道(v0.8.5)
|
|||
|
|
- **ImageX 通道**(图片上传):`get_upload_token(scene=2)` → `imagex.bytedanceapi.com` → `ApplyImageUpload` / `CommitImageUpload`,返回 URI 格式 `tos-cn-i-{service_id}/{uuid}`,service_id 为 `tb4s082cfz`
|
|||
|
|
- **VOD 通道**(视频/音频上传):`get_upload_token(scene=1)` → `vod.bytedanceapi.com` → `ApplyUploadInner` / `CommitUploadInner`,返回 vid 格式 `v028xxx`,SpaceName 为 `dreamina`
|
|||
|
|
- AWS Signature V4 签名:ImageX 使用 service=`imagex`,VOD 使用 service=`vod`,region 均为 `cn-north-1`
|
|||
|
|
- VOD 上传自动返回媒体元数据(Duration、Width、Height、Fps 等),音频时长 fallback 使用本地 WAV 头解析
|
|||
|
|
|
|||
|
|
### 分辨率支持
|
|||
|
|
|
|||
|
|
#### 图片分辨率
|
|||
|
|
| 分辨率 | 1:1 | 4:3 | 3:4 | 16:9 | 9:16 | 3:2 | 2:3 | 21:9 |
|
|||
|
|
|--------|-----|-----|-----|------|------|-----|-----|------|
|
|||
|
|
| 1k | 1024×1024 | 768×1024 | 1024×768 | 1024×576 | 576×1024 | 1024×682 | 682×1024 | 1195×512 |
|
|||
|
|
| 2k | 2048×2048 | 2304×1728 | 1728×2304 | 2560×1440 | 1440×2560 | 2496×1664 | 1664×2496 | 3024×1296 |
|
|||
|
|
| 4k | 4096×4096 | 4608×3456 | 3456×4608 | 5120×2880 | 2880×5120 | 4992×3328 | 3328×4992 | 6048×2592 |
|
|||
|
|
|
|||
|
|
#### 视频分辨率
|
|||
|
|
| 分辨率 | 1:1 | 4:3 | 3:4 | 16:9 | 9:16 |
|
|||
|
|
|--------|-----|-----|-----|------|------|
|
|||
|
|
| 480p | 480×480 | 640×480 | 480×640 | 854×480 | 480×854 |
|
|||
|
|
| 720p | 720×720 | 960×720 | 720×960 | 1280×720 | 720×1280 |
|
|||
|
|
| 1080p | 1080×1080 | 1440×1080 | 1080×1440 | 1920×1080 | 1080×1920 |
|
|||
|
|
|
|||
|
|
### 服务器中间件栈
|
|||
|
|
1. **CORS 跨域支持**:`koa2-cors()`
|
|||
|
|
2. **Range 请求**:`koaRange`(支持分段内容传输)
|
|||
|
|
3. **自定义异常处理器**:捕获错误并返回 FailureBody 响应
|
|||
|
|
4. **自定义 JSON 解析器**:处理 POST/PUT/PATCH 请求的 JSON(清理问题 Unicode 字符,跳过 multipart 请求)
|
|||
|
|
5. **Body 解析器**:`koa-body`(multipart: true,maxFileSize: 100MB)
|
|||
|
|
|
|||
|
|
## 开发规范
|
|||
|
|
|
|||
|
|
1. **TypeScript**:项目使用 TypeScript + ESM 模块
|
|||
|
|
2. **路径别名**:使用 `@/` 别名指向 `src/` 目录
|
|||
|
|
3. **日志**:使用 `@/lib/logger.ts` 中的 logger 保持输出一致
|
|||
|
|
4. **配置**:环境配置在 `configs/` 目录,通过 `@/lib/config.ts` 加载
|
|||
|
|
5. **API 兼容性**:维护 OpenAI API 兼容性,确保客户端集成正常
|
|||
|
|
6. **Node.js 版本**:≥16.0.0
|
|||
|
|
|
|||
|
|
## 测试 API 调用
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 文生图(使用最新模型)
|
|||
|
|
curl -X POST http://localhost:8000/v1/images/generations \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-H "Authorization: Bearer your_sessionid" \
|
|||
|
|
-d '{"model": "jimeng-5.0", "prompt": "美丽的日落风景", "ratio": "16:9", "resolution": "2k"}'
|
|||
|
|
|
|||
|
|
# 图生图(通过 images 参数)
|
|||
|
|
curl -X POST http://localhost:8000/v1/images/generations \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-H "Authorization: Bearer your_sessionid" \
|
|||
|
|
-d '{"model": "jimeng-4.5", "prompt": "将两张图融合成梦幻风格", "images": ["https://example.com/img1.jpg", "https://example.com/img2.jpg"], "ratio": "1:1", "resolution": "2k", "sample_strength": 0.5}'
|
|||
|
|
|
|||
|
|
# 图生图(multipart 文件上传)
|
|||
|
|
curl -X POST http://localhost:8000/v1/images/generations \
|
|||
|
|
-H "Authorization: Bearer your_sessionid" \
|
|||
|
|
-F "model=jimeng-4.5" \
|
|||
|
|
-F "prompt=将图片转换为油画风格" \
|
|||
|
|
-F "images=@/path/to/image1.jpg" \
|
|||
|
|
-F "ratio=1:1" \
|
|||
|
|
-F "resolution=2k"
|
|||
|
|
|
|||
|
|
# 视频生成
|
|||
|
|
curl -X POST http://localhost:8000/v1/videos/generations \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-H "Authorization: Bearer your_sessionid" \
|
|||
|
|
-d '{"model": "jimeng-video-3.5-pro", "prompt": "一只小猫在草地上玩耍", "ratio": "16:9", "resolution": "720p"}'
|
|||
|
|
|
|||
|
|
# Seedance 2.0 多图视频(文件上传)
|
|||
|
|
curl -X POST http://localhost:8000/v1/videos/generations \
|
|||
|
|
-H "Authorization: Bearer your_sessionid" \
|
|||
|
|
-F "model=jimeng-video-seedance-2.0" \
|
|||
|
|
-F "prompt=@1 和 @2 两人开始跳舞" \
|
|||
|
|
-F "ratio=4:3" \
|
|||
|
|
-F "duration=4" \
|
|||
|
|
-F "files=@/path/to/image1.jpg" \
|
|||
|
|
-F "files=@/path/to/image2.jpg"
|
|||
|
|
|
|||
|
|
# Seedance 2.0-fast 快速多图视频
|
|||
|
|
curl -X POST http://localhost:8000/v1/videos/generations \
|
|||
|
|
-H "Authorization: Bearer your_sessionid" \
|
|||
|
|
-F "model=jimeng-video-seedance-2.0-fast" \
|
|||
|
|
-F "prompt=@1 图片中的人物开始微笑" \
|
|||
|
|
-F "ratio=4:3" \
|
|||
|
|
-F "duration=5" \
|
|||
|
|
-F "files=@/path/to/image1.jpg"
|
|||
|
|
|
|||
|
|
# Seedance 图片+音频混合视频
|
|||
|
|
curl -X POST http://localhost:8000/v1/videos/generations \
|
|||
|
|
-H "Authorization: Bearer your_sessionid" \
|
|||
|
|
-F "model=jimeng-video-seedance-2.0-fast" \
|
|||
|
|
-F "prompt=@1 图片中的人物随着音乐 @2 开始跳舞" \
|
|||
|
|
-F "ratio=9:16" \
|
|||
|
|
-F "duration=5" \
|
|||
|
|
-F "files=@/path/to/image.png" \
|
|||
|
|
-F "files=@/path/to/audio.wav"
|
|||
|
|
|
|||
|
|
# 健康检查
|
|||
|
|
curl http://localhost:8000/ping
|
|||
|
|
|
|||
|
|
# Token 检查
|
|||
|
|
curl -X POST http://localhost:8000/token/check \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-d '{"token": "your_sessionid"}'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 配置
|
|||
|
|
|
|||
|
|
默认端口:8000
|
|||
|
|
配置文件在 `configs/` 目录,使用 YAML 格式。
|