> ## Documentation Index
> Fetch the complete documentation index at: https://docs.li.fi/llms.txt
> Use this file to discover all available pages before exploring further.

# API 延迟和优化

> API 延迟和优化指南

## 优化响应时间

您可以通过自定义以下方式来优化接收报价的速度：

### 在 `/quote` 和 `/advanced/routes` 之间选择

* 使用 `/quote` 获取**更快的响应**。它返回单个最佳路由。它将路由查找和交易生成合并为单个调用，从而减少了客户端到服务器的延迟。
* 使用 `/advanced/routes` 来**检索多个路由选项**。这些调用非常快，以便快速向用户显示结果。为了执行其中一个路由，需要调用 `/stepTransaction` 来生成交易数据。

### 禁用模拟

* 默认情况下，带有交易数据的响应包括链上模拟检查。
* 为了提高速度，将模拟选项设置为 `false`。您将 `skipSimulation` 标志作为查询参数传递给 `/quote` 或 `/stepTransaction` 端点：

  ```json theme={"system"}
  /v1/advanced/stepTransaction?skipSimulation=true

  /v1/quote?skipSimulation=true&...
  ```
* **注意**：禁用模拟会减少验证，但可以提高响应时间。特别是当您在系统中无论如何都会模拟/估算交易的气体时，推荐使用。

### 选择时间策略

LI.FI 允许您使用时间策略来控制它等待结果的时间。它们不仅指定超时时间，还允许更高级的配置以确保考虑到多个工具的结果。

生成路由时以两种方式应用时间策略：

* `swapStepTimingStrategies`：请求同链交换时应用
* `routeTimingStrategies`：应用于可能包含多个工具（例如 swap+bridge）的完整路由

#### 时间策略格式

时间策略包含以下属性：

```json theme={"system"}
{
  "strategy": "minWaitTime",
  "minWaitTimeMs": 600,
  "startingExpectedResults": 4,
  "reduceEveryMs": 300
}
```

* **strategy:** 目前只存在 `minWaitTime`
* **minWaitTimeMs:** 等待响应的最短时间（例如 600ms）
* **startingExpectedResults:** 预期的报价数量（例如 4）
* **reduceEveryMs:** 减少期望的频率（例如每 300ms）

> 应用此策略时，我们给所有工具 600ms（minWaitTimeMs）来返回结果。如果在这段时间内我们收到了 4 个或更多（startingExpectedResults）结果，我们就返回这些结果，不再等待其他工具。\
> 如果少于 4 个结果，我们再等待 300ms 并检查现在是否至少有 3 个结果。

#### 在 API 调用中传递策略

在 `POST /v1/advanced/routes` 请求中：

```json theme={"system"}
{
  ...
  "options": {
    "timing": {
      "swapStepTimingStrategies": [
		{
          "strategy": "minWaitTime",
          "minWaitTimeMs": 600,
          "startingExpectedResults": 4,
          "reduceEveryMs": 300
        }
      ],
      "routeTimingStrategies": [
		{
          "strategy": "minWaitTime",
          "minWaitTimeMs": 1500,
          "startingExpectedResults": 6,
          "reduceEveryMs": 500
        }
      ]
    }
  }
}
```

在 `GET /v1/quote` 请求中：

```
/v1/quote?...
  &swapStepTimingStrategies=minWaitTime-600-4-300
  &routeTimingStrategies=minWaitTime-1500-6-500
```

<Info>
  这些示例中传递的策略是我们应用的默认策略。
</Info>

#### 时间策略示例

**最大化结果**\
即使花费更长时间也返回最佳路由：

```json theme={"system"}
{
  "strategy": "minWaitTime",
  "minWaitTimeMs": 900,
  "startingExpectedResults": 5,
  "reduceEveryMs": 300
}
```

**平衡方法**\
等待适度的时间以返回速度和完整性的混合：

```json theme={"system"}
{
  "strategy": "minWaitTime",
  "minWaitTimeMs": 900,
  "startingExpectedResults": 1,
  "reduceEveryMs": 300
}
```

**最快可能的响应**\
无延迟返回第一个可用结果：

```json theme={"system"}
{
  "strategy": "minWaitTime",
  "minWaitTimeMs": 0,
  "startingExpectedResults": 1,
  "reduceEveryMs": 300
}
```

**时间限制返回（超时）**\
在固定时间限制内返回任何收到的结果：

```json theme={"system"}
{
  "strategy": "minWaitTime",
  "minWaitTimeMs": 900,
  "startingExpectedResults": 0,
  "reduceEveryMs": 0
}
```

<Note>
  时间策略仅用于 LI.FI 等待第三方提供者响应的时间长短，LI.FI API 的总响应时间将是 roundTripTime+parsing+strategies+simulation 的总和。
</Note>

***
