跳转到内容
搜索文档

通过 API 配置 Snippets

最后更新 查看 MarkdownAgent 设置

您可以使用 Cloudflare API 创建 Snippets。

所需权限

用于管理 Snippets 的 API 请求中的 API 令牌 必须至少具有以下权限:

  • Zone > Snippets > Edit

端点

要获得完整端点,请将下面列出的 Snippets 端点追加到 Cloudflare API 基础 URL:

https://api.cloudflare.com/client/v4

{zone_id} 参数是 zone ID(十六进制字符串)。可在 Cloudflare 仪表板中找到此值。

下表汇总了可用操作。

操作 动词 + 端点
列出所有代码片段 GET /zones/{zone_id}/snippets
创建/更新代码片段 PUT /zones/{zone_id}/snippets/{snippet_name}
获取代码片段详情 GET /zones/{zone_id}/snippets/{snippet_name}
获取代码片段内容 GET /zones/{zone_id}/snippets/{snippet_name}/content
删除代码片段 DELETE /zones/{zone_id}/snippets/{snippet_name}
列出 snippet 规则 GET /zones/{zone_id}/snippets/snippet_rules
创建/更新/删除 snippet 规则 PUT /zones/{zone_id}/snippets/snippet_rules
删除所有 snippet 规则 DELETE /zones/{zone_id}/snippets/snippet_rules

API 调用示例

创建/更新代码片段

要创建或更新 Snippet,请使用以下 PUT 请求。片段命名为 $SNIPPET_NAME,请求体包含 JavaScript 代码。

Required API token permissions

At least one of the following token permissions is required:
  • Snippets Write
Update a zone snippetbash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/snippets/$SNIPPET_NAME" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--form "files=@example.js" \
	--form "metadata={\"main_module\": \"example.js\"}"

片段名称只能包含字符 a-z0-9_(下划线)。名称在 zone 上下文中必须唯一。创建片段后无法更改片段名称。

必需的请求体参数为:

  • files:包含 JavaScript 代码的文件。
  • metadata:包含 main_module 的对象,其值必须与上传文件的文件名匹配。

要使此示例正常工作,请将 JavaScript 代码保存在名为 example.js 的文件中,然后从 example.js 所在文件夹执行带 PUT 请求的 curl 命令。

示例响应json
{
	"errors": [],
	"messages": [],
	"success": true,
	"result": {
		"created_on": "2023-07-24-00:00:00",
		"modified_on": "2023-07-24-00:00:00",
		"snippet_name": "snippet_name_01"
	}
}

要部署新片段,必须创建 snippet 规则。snippet 规则的表达式定义片段代码何时运行。

创建/更新/删除 snippet 规则

创建代码片段后,可以将其关联到规则。通过向 snippet_rules 端点发送以下 PUT 请求完成此操作。

Required API token permissions

At least one of the following token permissions is required:
  • Snippets Write
Update zone snippet rulesbash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/snippets/snippet_rules" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"rules": [
				{
						"description": "Trigger snippet on specific cookie",
						"enabled": true,
						"expression": "http.cookie eq \"a=b\"",
						"snippet_name": "snippet_name_01"
				}
		]
	}'

这篇文档对您有帮助吗?