INTEGRITY Документация

Настройка Snippets через API

Snippets можно создавать с помощью Cloudflare API.

Необходимые разрешения

API-токен используемый в запросах API для управления Snippets, должен иметь как минимум следующее разрешение:

Конечные точки

Чтобы получить полную конечную точку, добавьте перечисленные ниже конечные точки Snippets к базовому URL-адресу API Cloudflare:

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

{zone_id} аргумент представляет собой 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}
Список правил сниппетов GET /zones/{zone_id}/snippets/snippet_rules
Создание/обновление/удаление правил сниппетов PUT /zones/{zone_id}/snippets/snippet_rules
Удаление всех правил сниппетов DELETE /zones/{zone_id}/snippets/snippet_rules

Примеры вызовов API

Создание/обновление сниппета кода

Чтобы создать или обновить Snippet, используйте следующий PUT запрос. Сниппет называется $SNIPPET_NAME а тело содержит код JavaScript.

Необходимые разрешения API-токена

Хотя бы одно из следующих права доступа токена требуется:
Обновление Snippet зоны
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/snippets/$SNIPPET_NAME" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--form "[email protected]" \
	--form "metadata={\"main_module\": \"example.js\"}"

Имя snippet может содержать только символы a-z, 0-9, а также _ (подчеркивание). Имя должно быть уникальным в пределах зоны. После создания snippet изменить его имя нельзя.

Обязательные параметры тела запроса:

Чтобы этот пример работал, сохраните код JavaScript в файле с именем example.js, а затем выполнить curl команду с PUT запрос из папки, где example.js находится.

Пример ответа
{
	"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. Выражение правила сниппета определяет, когда будет выполняться код сниппета.

Создание/обновление/удаление правил сниппетов

После создания сниппета кода вы можете привязать его к правилам. Это делается с помощью следующего PUT запрос к snippet_rules конечная точка.

Необходимые разрешения API-токена

Хотя бы одно из следующих права доступа токена требуется:
Обновление правил Snippet зоны
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"
				}
		]
	}'