Available in Classic and VPC
Edit enabled Canary settings.
Request
The following describes the request format for the endpoint. The request format is as follows:
| Method | URI |
|---|---|
| PATCH | /api/v1/products/{product-id}/apis/{api-id}/stages/{stage-id}/canary |
Request headers
For information about the headers common to all API Gateway APIs, see API Gateway request headers.
Request path parameters
You can use the following path parameters with your request:
| Field | Type | Required | Description |
|---|---|---|---|
product-id |
String | Required | Product ID associated with the API
|
api-id |
String | Required | API ID created on the product
|
stage-id |
String | Required | Stage ID created on the API
|
Request syntax
The request syntax is as follows.
{
"canaryCacheTtlSec" : 0,
"useDistributionRate" : true,
"canaryConditions" : [ {
"parameterName" : "parameterName",
"parameterCode" : "REQUEST_HEADER",
"parameterValue" : "parameterValue"
} ],
"canaryEndpointDomain" : "canaryEndpointDomain",
"canaryThrottleRps" : 0,
"canaryDistributionRate" : 0
}
Request body
The following describes the request body.
| Field | Type | Required | Description |
|---|---|---|---|
canaryCacheTtlSec |
String | Optional | Seconds to keep cache (sec)
|
useDistributionRate |
Boolean | Required | Determine how to distribute requests to stage and Canary
|
canaryConditions[] |
Object | Conditional | Canary test request information
|
canaryConditions[].parameterName |
String | Conditional | Parameter name
|
canaryConditions[].parameterCode |
String | Conditional | Parameter type
|
canaryConditions[].parameterValue |
String | Conditional | Parameter request value
|
canaryEndpointDomain |
String | Required | Set endpoint domains of Canary |
canaryThrottleRps |
String | Optional | Number of requests per second to limit per registered method to protect backend servers |
canaryDistributionRate |
Float | Conditional | Canary request execution rate
|
Request example
The following is a sample request.
curl -X PATCH 'https://apigateway.apigw.ntruss.com/api/v1/products/{product-id}/apis/{api-id}/stages/{stage-id}/canary' \
--header 'Content-Type: application/json' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-iam-access-key: {Access Key}' \
--header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \
--data '{
"canaryCacheTtlSec" : 0,
"useDistributionRate" : true,
"canaryConditions" : [ {
"parameterName" : "parameter-***",
"parameterCode" : "REQUEST_HEADER",
"parameterValue" : "*****"
} ],
"canaryEndpointDomain" : "canaryEndpointDomain",
"canaryThrottleRps" : 6,
"canaryDistributionRate" : 1.4658129
}'
Response
The following describes the response format.
Response syntax
The response syntax is as follows.
{
"stageId": "stageId",
"canaryCertificateId": "canaryCertificateId",
"canaryDeploymentNo": 0,
"canaryDistributionRate": 0.0,
"canaryCacheTtlSec": 0,
"canaryThrottleRps": 0,
"canaryEndpointDomain": "canaryEndpointDomain",
"canaryDeployedTime": "2024-05-08T09:46:57.364Z",
"canaryDeploymentDescription": "canaryDeploymentDescription",
"deployedStageDeploymentNo": 0,
"useDistributionRate": true,
"canaryConditions": [
{
"parameterCode": "parameterCode",
"parameterName": "parameterName",
"parameterValue": "parameterValue"
}
]
}
Response status codes
For information about the HTTP status codes common to all API Gateway APIs, see API Gateway response status codes.
Response example
The following is a sample response.
{
"stageId": "*****7mhdv",
"canaryCertificateId": "",
"canaryDeploymentNo": 251437,
"canaryDistributionRate": 1.4658129,
"canaryCacheTtlSec": 1,
"canaryThrottleRps": 6,
"canaryEndpointDomain": "NONE",
"canaryDeployedTime": "2024-05-08T09:46:57.364Z",
"canaryDeploymentDescription": "",
"deployedStageDeploymentNo": 251381,
"useDistributionRate": true,
"canaryConditions": [
{
"parameterCode": "REQUEST_HEADER",
"parameterName": "****",
"parameterValue": "****"
}
]
}