# 云计算价格计算器 API 文档

**描述:** 支持多云平台价格计算的服务。

**基本 URL:** `/api`

---

## 端点

### 1. 获取区域列表

- **描述:** 获取指定平台的可用区域列表。
- **路径:** `GET /regions`
- **方法:** `GET`
- **查询参数:**
    - `platform` (string, optional, default: "aws"): 云平台。支持的值: "aws", "azure", "aliyun"。
- **成功响应 (200):**
    ```json
    [
      {
        "code": "us-east-1",
        "name": "US East (N. Virginia)"
      }
    ]
    ```
- **错误响应 (400):** 如果平台不受支持。

---

### 2. 获取实例类型

- **描述:** 获取指定平台的可用实例类型。
- **路径:** `GET /instance-types`
- **方法:** `GET`
- **查询参数:**
    - `platform` (string, optional, default: "aws"): 云平台。
- **成功响应 (200):** 包含实例类型及其信息的字典。
- **错误响应 (400):** 如果平台不受支持。

---

### 3. 搜索实例

- **描述:** 搜索符合指定条件的实例类型。
- **路径:** `POST /search-instances`
- **方法:** `POST`
- **请求体:** `InstanceSearchRequest`
- **成功响应 (200):** 匹配的实例列表，按月度总价排序。
- **错误响应 (400):** 如果缺少必需的参数。
- **错误响应 (500):** 内部服务器错误。

---

### 4. 搜索实例 V2

- **描述:** 使用 MySQL 数据库搜索符合条件的 AWS 实例。
- **路径:** `POST /search-instances-v2`
- **方法:** `POST`
- **请求体:** `InstanceSearchRequestV2`
- **成功响应 (200):** 匹配的实例列表。
- **错误响应 (500):** 内部服务器错误。

---

### 5. 比较价格

- **描述:** 比较多种实例配置的价格。
- **路径:** `POST /compare-prices`
- **方法:** `POST`
- **请求体:** `PriceComparison`
- **成功响应 (200):** 包含配置及其计算价格的列表。
- **错误响应 (500):** 内部服务器错误。

---

## 数据模型

### `InstanceSearchRequest`

| 字段 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| `cpu_cores` | integer | CPU 核心数 | (optional) |
| `memory_gb` | float | 内存 (GB) | (optional) |
| `disk_gb` | integer | 磁盘大小 (GB) | (optional) |
| `region` | string | 区域 | (optional) |
| `operating_system` | string | 操作系统 | "Linux" |
| `platform` | string | 云平台 | "aws" |

### `InstanceSearchRequestV2`

| 字段 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| `cpu_cores` | integer | CPU 核心数 | (optional) |
| `memory_gb` | float | 内存 (GB) | (optional) |
| `disk_gb` | integer | 磁盘大小 (GB) | (optional) |
| `region` | string | 区域 | (optional) |
| `operating_system` | string | 操作系统 | "Linux" |

### `PriceComparison`

| 字段 | 类型 | 描述 |
|---|---|---|
| `configurations` | List[`PriceRequest`] | 价格请求配置列表 |

### `PriceRequest`

| 字段 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| `instance_type` | string | 实例类型 (required) | |
| `region` | string | 区域 (required) | |
| `operating_system` | string | 操作系统 (required) | |
| `purchase_option` | string | 购买选项 (required) | |
| `duration` | integer | 持续时间 | 1 |
| `disk_gb` | integer | 磁盘大小 (GB) | 0 |
