תיעוד 103
יצירת כלל באמצעות API
עודכן לאחרונה: 16 באפריל 2026
השתמשו ב-Rulesets API כדי ליצור Cache Response Rule באמצעות API. להגדרת Cloudflare API, עיינו ב-תיעוד ה-API.
#הגדרות בסיסיות של כלל
כשיוצרים Cache Response Rule באמצעות API, ודאו שאתם:
- מגדירים את פעולת הכלל לאחת מהפעולות הזמינות.
- מגדירים את הפרמטרים בשדה
action_parametersלפי ההגדרות שברצונכם להגדיר עבור תגובות תואמות. - פורסים את הכלל ל-ruleset של נקודת הכניסה בשלב
http_response_cache_settings.
#הליך
- השתמשו בפעולה List zone rulesets כדי לבדוק אם כבר קיים ruleset עבור השלב
http_response_cache_settings. - אם ה-ruleset של השלב לא קיים, צרו אותו באמצעות הפעולה Create a zone ruleset. במאפייני ה-ruleset החדש, הגדירו את הערכים הבאים:
- kind:
zone - phase:
http_response_cache_settings
- kind:
- השתמשו בפעולה Update a zone ruleset כדי להוסיף כללים ל-ruleset. לחלופין, כללו את הכללים בבקשת Create a zone ruleset שהוזכרה בשלב הקודם.
#בקשות לדוגמה
הדוגמאות האלה מציגות את כל הפעולות הזמינות ב-Cache Response Rules, באמצעות קריטריונים להתאמת בקשה ותגובה. שימוש בדוגמאות אלה ישירות יגרום להחלפה של כל הכללים הקיימים בשלב.
#דוגמה: הסרת כותרות תגובה מקובצי JS לפני שמירה במטמון
עדכון ruleset של נקודת כניסה באזור, bash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_response_cache_settings/entrypoint" \
--request PUT \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"rules": [
{
"expression": "http.request.uri.path.extension eq \"js\"",
"description": "Strip caching headers from JS files",
"action": "set_cache_settings",
"action_parameters": {
"strip_etags": true,
"strip_set_cookie": true,
"strip_last_modified": true
}
}
]
}'#דוגמה: הגדרת תגי מטמון סטטיים על תגובות API
עדכון ruleset של נקודת כניסה באזור, bash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_response_cache_settings/entrypoint" \
--request PUT \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"rules": [
{
"expression": "http.request.uri.path starts_with \"/api/\"",
"description": "Tag API responses for targeted purging",
"action": "set_cache_tags",
"action_parameters": {
"operation": "set",
"values": [
"api-response",
"dynamic-content"
]
}
}
]
}'#דוגמה: הוספת תגי מטמון מכותרת תגובה באמצעות ביטוי
עדכון ruleset של נקודת כניסה באזור, bash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_response_cache_settings/entrypoint" \
--request PUT \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"rules": [
{
"expression": "any(http.response.headers.names[*] == \"Surrogate-Keys\")",
"description": "Extract cache tags from alternative CDN response header",
"action": "set_cache_tags",
"action_parameters": {
"operation": "add",
"expression": "split(http.response.headers[\"Surrogate-Keys\"][0], \",\", 1)"
}
}
]
}'#דוגמה: דריסת cache-control באמצעות max-age
עדכון ruleset של נקודת כניסה באזור, bash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_response_cache_settings/entrypoint" \
--request PUT \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"rules": [
{
"expression": "http.response.code eq 200",
"description": "Override cache-control for successful responses",
"action": "set_cache_control",
"action_parameters": {
"max-age": {
"operation": "set",
"value": 3600,
"cloudflare_only": true
}
}
}
]
}'#דוגמה: הגדרת הנחיית private עם qualifiers
עדכון ruleset של נקודת כניסה באזור, bash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_response_cache_settings/entrypoint" \
--request PUT \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"rules": [
{
"expression": "http.request.uri.path starts_with \"/user/\"",
"description": "Mark user content as private",
"action": "set_cache_control",
"action_parameters": {
"private": {
"operation": "set",
"qualifiers": [
"X-User-Id",
"X-Session-Token"
]
},
"no-cache": {
"operation": "set"
}
}
}
]
}'#דוגמה: הגדרת immutable עבור נכסי גופנים סטטיים
עדכון ruleset של נקודת כניסה באזור, bash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_response_cache_settings/entrypoint" \
--request PUT \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"rules": [
{
"expression": "http.request.uri.path.extension in {\"woff2\" \"woff\" \"ttf\"}",
"description": "Mark fonts as immutable",
"action": "set_cache_control",
"action_parameters": {
"immutable": {
"operation": "set"
},
"max-age": {
"operation": "set",
"value": 31536000
}
}
}
]
}'#דוגמה: כמה כללים עם הסרת כותרות, תיוג תגובות, והגדרת cache control
עדכון ruleset של נקודת כניסה באזור, bash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_response_cache_settings/entrypoint" \
--request PUT \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"rules": [
{
"expression": "http.response.code eq 200 and http.request.uri.path.extension eq \"html\"",
"description": "Strip tracking headers from HTML responses",
"action": "set_cache_settings",
"action_parameters": {
"strip_etags": true,
"strip_set_cookie": true
}
},
{
"expression": "http.request.uri.path starts_with \"/products/\"",
"description": "Tag product pages for purging",
"action": "set_cache_tags",
"action_parameters": {
"operation": "add",
"values": [
"product-catalog",
"storefront"
]
}
},
{
"expression": "http.response.code eq 200",
"description": "Set cache control for all 200 responses",
"action": "set_cache_control",
"action_parameters": {
"s-maxage": {
"operation": "set",
"value": 86400,
"cloudflare_only": true
},
"must-revalidate": {
"operation": "set"
}
}
}
]
}'#הרשאות נדרשות לאסימון API
לאסימון ה-API שבו משתמשים בבקשות API לניהול Cache Response Rules חייבות להיות ההרשאות הבאות:
- Zone > Cache Rules > Edit
- Account Rulesets > Edit
- Account Filter Lists > Edit