

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 内置实用程序
<a name="built-in-util-js"></a>

`util` 变量包含帮助您处理数据的常规实用程序方法。除非另行指定，否则所有实用程序均使用 UTF-8 字符集。

## 编码实用程序
<a name="utility-helpers-in-encoding"></a>

### 编码实用程序列表
<a name="utility-helpers-in-encoding-list-js"></a>

 **`util.urlEncode(String)`**  
将输入字符串作为 `application/x-www-form-urlencoded` 编码字符串返回。

 **`util.urlDecode(String)`**  
将 `application/x-www-form-urlencoded` 编码的字符串解码回未编码的形式。

**`util.base64Encode(string) : string`**  
将输入编码为 base64 编码字符串。

**`util.base64Decode(string) : string`**  
对 base64 编码字符串中的数据进行解码。

## ID 生成实用程序
<a name="utility-helpers-in-id-gen-js"></a>

### ID 生成实用程序列表
<a name="utility-helpers-in-id-gen-list-js"></a>

 **`util.autoId()`**  
返回 128 位随机生成的 UUID。

**`util.autoUlid()`**  
返回一个 128 位随机生成的 ULID（可按字典排序的通用唯一标识符）。

**`util.autoKsuid()`**  
返回一个 128 位随机生成的 KSUID（K 可排序唯一标识符），它使用 Base62 编码为长度为 27 的字符串。

## 错误实用程序
<a name="utility-helpers-in-error-js"></a>

### 错误实用程序列表
<a name="utility-helpers-in-error-list-js"></a>

 **`util.error(String, String?, Object?, Object?)`**  
引发自定义错误。如果模板检测到请求或调用结果的错误，可用于请求或响应映射模板中。此外，还可以指定 `errorType`、`data` 和 `errorInfo` 字段。将在 GraphQL 响应中 `data` 内部对应的 `error` 块中添加 `errors` 值。  
`data` 将根据查询选择集进行筛选。将在 GraphQL 响应中 `errorInfo` 内部对应的 `error` 块中添加 `errors` 值。  
`errorInfo` **不会**根据查询选择集进行筛选。

 **`util.appendError(String, String?, Object?, Object?)`**  
追加自定义错误。如果模板检测到请求或调用结果的错误，可用于请求或响应映射模板中。此外，还可以指定 `errorType`、`data` 和 `errorInfo` 字段。与 `util.error(String, String?, Object?, Object?)` 不同，不会中断模板评估，因此，可以向调用方返回数据。将在 GraphQL 响应中 `data` 内部对应的 `error` 块中添加 `errors` 值。  
`data` 将根据查询选择集进行筛选。将在 GraphQL 响应中 `errorInfo` 内部对应的 `error` 块中添加 `errors` 值。  
`errorInfo` **不会**根据查询选择集进行筛选。

## 类型和模式匹配实用程序
<a name="utility-helpers-in-patterns-js"></a>

### 类型和模式匹配实用程序列表
<a name="utility-helpers-in-patterns-js-list"></a>

**`util.matches(String, String) : Boolean`**  
如果在第一个参数中指定的模式与第二个参数中提供的数据匹配，则返回 true。模式必须为正则表达式，例如 `util.matches("a*b", "aaaaab")`。此功能以[模式](https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html)为基础，您可参考其他文档，进一步了解此内容。

 **`util.authType()`**   
返回描述请求使用的多重身份验证类型的字符串，即，返回“IAM Authorization”、“User Pool Authorization”、“Open ID Connect Authorization”或“API Key Authorization”。

## 返回值行为实用程序
<a name="utility-helpers-in-cloudwatch-logs-list-js"></a>

### 返回值行为实用程序列表
<a name="utility-helpers-in-behavior-list-js"></a>

 **`util.escapeJavaScript(String)`**  
以转义字符串的形式返回输入 JavaScript 字符串。

## 解析器授权实用程序
<a name="utility-helpers-in-resolver-auth-js"></a>

### 解析器授权实用程序列表
<a name="utility-helpers-in-resolver-auth-list-js"></a>

 **`util.unauthorized()`**  
针对被解析的字段引发 `Unauthorized`。可以在请求或响应映射模板中使用该实用程序，以确定是否允许调用方解析该字段。