Skip to main content

Create Cache Control V2

This API is used to create cache control for website acceleration service.

Request

Request-Line

POST /cdn/v1.1/services/{serviceId}/cacheControl HTTP/1.1

Request Parameters

Path Parameters

ParameterTypeRequiredDescription
serviceIdIntegerMandatoryservice id.

Body Parameters

ParameterTypeRequiredDescription
policyNameStringMandatoryPolicy name for cache control.
priorityIntegerMandatoryPriority weight for the rule. Rules with a higher weight take precedence. The weight must be non-zero.
matchesArrayMandatoryMatching configuration that determines which requests the rule applies to. See Matches for details.
ttlLongOptionalThe cache TTL for contents to be cached on edge server in seconds.
refererAclObjectOptionalConfigure resource references by creating a domain list and selecting a configuration type (e.g.,whitelist,blacklist) to control whether a domain has permission to access the resource,thereby ensuring resource security. see Referer Acl for details
originAclObjectOptionalConfigure origins by creating a domain list and selecting a configuration type (e.g.,whitelist,blacklist) to control whether a domain has permission to access data from origin,thereby ensuring resource security. see Origin Acl for details
ignoreClientNoCacheBooleanOptionalTrue or false to ignore no-cache header(s) sent by the client. Default is false.
ignoreOriginNoCacheBooleanOptionalTrue or false to ignore no-cache header(s) sent by the origin server. Default is false.
ignoreQueryStringBooleanOptionalTrue or false to ignore any URL query string when caching contents. Default is false.
enableXCacheBooleanOptionalWhen enabled all responses from the edge have X-Cache header with values like "HIT from da01.xy01.swiftserve.com", showing whether the response was served from the cache (at least partially) or not. Default is false.
noCacheBooleanOptionalDo not cache the content even if the origin presents it as cacheable. Default is false.
autoGzipDisableBooleanMandatoryDisable automatic gzipping on the CDN side. Default is false.
responseHeadersArrayOptionalList of response header configuration. See Response Headers for details.
varyMIMEsString[]OptionalConfigures so-called "vary for images" feature.Contains a list of mime types, preferred for objects matched by the policy.
enabledBooleanOptionalFlag defining if policy is active or no. default is true.
Object: Matches
ParameterTypeRequiredDescription
ArrayMandatorySee Match for details.
Object: Match
ParameterTypeRequiredDescription
fieldStringMandatoryWhich part of the request to match. Supported values:
req.path - Request path (excluding query string).
req.query - Request query parameters.
req.method - HTTP method (GET, POST, etc.).
client.ip - Client IP address.
req.host - Request host.
req.header.user-agent - User-Agent header.
req.header.cookie - Cookie header.
req.header.origin - Origin header.
req.header.via - Via header.
operatorStringMandatoryDefines how to match the field. Supported values:
startswith - Succeeds if the what matches one of the prefixes listed in patterns.
not_startswith - Matches if field value does not starts with any of the specified prefixes.
istartswith - Case-independent version of startswith.
not_istartwith - Matches if the field value does not starts with any of the specified prefixes, ignoring letter case differences.
regex - Succeeds if what matches one of the regexes listed in patterns.
equals - Succeeds if the what matches one of the strings listed in patterns.
not_equals - Succeeds if the field value does not exactly match any of the specified strings.
iequals - Case-independent version of equals.
not_iequals - Succeeds if the field value does not exactly match any of the specified strings,ignoring letter case differences.
endswith - Succeeds if the what ends with one of the strings listed in patterns. Useful e.g. to match file extensions like ".mp4".
not_endswith - Succeeds if the what does not ends with one of the strings listed in patterns.
iendswith - Case-independent version of endswith.
not_iendswith - Succeeds if the what does not ends with one of the strings listed in patterns,ignoring letter case differences.
subnet - Succeeds if the what belongs to one of subnets, specified in patterns, like "1.222.94.98/32".
not_subnet - Succeeds if the what does not belongs to one of subnets.
Note: subnet operator is applicable only to the client.ip match option.
valuesString[]MandatoryList of values matching the URL path string.
Object: Referer/Origin Acl
ParameterTypeRequiredDescription
aclTypeStringMandatoryTypes of blacklist and whitelist.
domainListString[]MandatoryList of domainName.
Object: Response Headers
ParameterTypeRequiredDescription
nameStringMandatoryResponse Header Name.
operationTypeStringMandatoryOperation type of response header policy, could be "add" or "replace" or "delete"
valueStringOptionalResponse Header Value.

Response

Response Body

ParameterTypeDescription
policyIdIntegerPolicy ID number for cache control.
policyNameStringPolicy name for cache control.
matchesArrayMatching configuration that determines which requests the rule applies to. See Matches for details.
priorityIntegerPriority weight for the rule. Rules with a higher weight take precedence. The weight must be non-zero.
ignoreClientNoCacheBooleanTrue or false to ignore no-cache header(s) sent by the client. Default is false.
ignoreOriginNoCacheBooleanTrue or false to ignore no-cache header(s) sent by the origin server. Default is false.
ignoreQueryStringBooleanTrue or false to ignore any URL query string when caching contents. Default is false.
enableXCacheBooleanWhen enabled all responses from the edge have X-Cache header with values like "HIT from da01.xy01.swiftserve.com", showing whether the response was served from the cache (at least partially) or not. Default is false.
noCacheBooleanDo not cache the content even if the origin presents it as cacheable. Default is false.
autoGzipDisableBooleanDisable automatic gzipping on the CDN side. Default is false.
responseHeadersArrayList of response header configuration. See Response Headers for details.
refererAclObjectConfigure resource references by creating a domain list and selecting a configuration type (e.g.,whitelist,blacklist) to control whether a domain has permission to access the resource,thereby ensuring resource security. see Referer Acl for details
originAclObjectConfigure origins by creating a domain list and selecting a configuration type (e.g.,whitelist,blacklist) to control whether a domain has permission to access data from origin,thereby ensuring resource security. see Origin Acl for details
ttlLongThe cache TTL for contents to be cached on edge server in seconds.
varyMIMEsString[]Configures so-called "vary for images" feature.Contains a list of mime types, preferred for objects matched by the policy.
enabledBooleanFlag defining if policy is active or no. default is true.

Status Codes, Error Codes and Error Messages

Status CodeError CodeError Message
400Request.BadRequestBad request.
400InvalidCustomer.IdEmptyCustomer id can be empty or invalid.
400InvalidService.IdIncorrectService id is empty or invalid.
400ServiceId.IdPermissionServiceId can not be found or unknown.
400Invalid.PolicyNamePolicy name is required.
400InvalidPolicy.MatchURLIncorrectThe matchUrlPath can not be empty.
400InvalidPolicy.OperatorOperator must be one of the following: prefix,regex,equals or suffix.
400InvalidPolicy.PatternsPatterns cannot be empty or invalid.
400InvalidPolicy.RefererAclInvalid AclType, must be in 'whitelist' or 'blacklist'.
400InvalidPolicy.AclDomainListThe AclDomainList array and every element in it must not be empty.
400InvalidPolicy.AclDomainTypeThe AclDomainList cannot be start with '-'
400InvalidPolicy.RefererAclInvalid AclType, must be in 'whitelist' or 'blacklist'.
400InvalidPolicy.PriorityPriority is required.
400InvalidService.VaryMiMEVaryMiME cannot be empty.
400InvalidPolicy.ResponseHeaderResponse header cannot be empty or invalid.
400InvalidPolicy.MatchesIncorrectThe matches can not be empty or incorrect.
400InvalidPolicy.MatchFieldIncorrectThe match field can not be empty or use the specified value.
400InvalidPolicy.MatchOperatorIncorrectThe match operator required or use the specified value.
400InvalidPolicy.MatchValuesIncorrectThe match values required or can not be empty.
400InvalidPolicy.MatchValueIncorrectAll match values must not be empty.

Examples

Create Cache Control V2

Request

POST /cdn/v1.1/services/229033/cacheControl HTTP/1.1

{ "priority":5,
"policyName":"cacheInfo",
"matches":[
{
"field":"req.path",
"operator":"startswith",
"values":["/css/","/images/abc/"]
},
{
"field":"req.host",
"operator":"iequals",
"values":["expamle.com"]
},
{
"field":"req.method",
"operator":"equals",
"values":["get"]
}
],
"ignoreClientNoCache":false,
"ignoreOriginNoCache":false,
"ignoreQueryString":true,
"enableXCache":true,
"noCache":false,
"autoGzipDisable":false,
"responseHeaders":[{
"name": "Content-Type",
"operationType": "add",
"value": "application/json"
}]
}

Successful Response Body

{
"policyId": 262285,
"policyName": "cacheInfo",
"ttl": 0,
"originAcl": {
"aclType": "",
"domainList": []
},
"ignoreClientNoCache": false,
"ignoreOriginNoCache": false,
"ignoreQueryString": true,
"enableXCache": true,
"noCache": false,
"autoGzipDisable": false,
"responseHeaders": [
{
"name": "Content-Type",
"value": "application/json",
"operationType": "Add"
}
],
"matches": [
{
"field": "req.path",
"operator": "startswith",
"values": [
"/css/",
"/images/abc/"
]
},
{
"field": "req.host",
"operator": "iequals",
"values": [
"expamle.com"
]
},
{
"field": "req.method",
"operator": "equals",
"values": [
"get"
]
}
],
"varyMIMEs": [],
"priority": 5,
"enabled": true
}