Updated on 2025-10-22 GMT+08:00

Creating a Plug-in

Function

Create a plug-in.

  • The plug-in name must be unique.

  • After a plug-in is created, bind it to APIs to let it take effect.

Authorization Information

Each account has all the permissions required to call all APIs, but IAM users must be assigned the required permissions. For details about the required permissions, see Permissions Policies and Supported Actions.

URI

POST /v2/{project_id}/apic/instances/{instance_id}/plugins

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Project ID. For details about how to obtain the project ID, see Appendix > Obtaining a Project ID in the ROMA Connect API Reference.

instance_id

Yes

String

Instance ID.

Request Parameters

Table 2 Request header parameters

Parameter

Mandatory

Type

Description

X-Auth-Token

Yes

String

User token, which can be obtained by calling the IAM API (value of X-Subject-Token in the response header).

Table 3 Request body parameters

Parameter

Mandatory

Type

Description

plugin_name

Yes

String

Plug-in name. Enter 3 to 255 characters, starting with a letter. Only letters, digits, and underscores (_) are allowed.

NOTE:
Chinese characters must be in UTF-8 or Unicode format.

plugin_type

Yes

String

Plug-in type.

  • cors: Cross-origin resource sharing.

  • set_resp_headers: HTTP response header management.

  • kafka_log: Kafka log push.

  • breaker: Circuit breaker.

  • rate_limit: Request throttling.

  • third_auth: Third-party authentication.

  • proxy_cache: Response cache.

  • proxy_mirror: Request mirroring.

  • oidc_auth: OIDC authentication.

plugin_scope

Yes

String

Plug-in scope. Options:

  • global: visible to all integration applications

  • app: visible to the current integration application

plugin_content

Yes

String

Plug-in content in JSON format. For details, see the model definition.

  • CorsPluginContent

  • SetRespHeadersContent

  • KafkaLogContent

  • BreakerContent

  • RateLimitContent

  • ThirdAuthContent

  • ProxyCacheContent

  • ProxyMirrorContent

  • OIDCAuthContent

roma_app_id

No

String

Integration application ID. Valid when plugin_scope is set to app.

remark

No

String

Plug-in description. Max. 255 characters.

Response Parameters

Status code: 201

Table 4 Response body parameters

Parameter

Type

Description

plugin_id

String

Plug-in ID.

plugin_name

String

Plug-in name. Enter 3 to 255 characters, starting with a letter. Only letters, digits, and underscores (_) are allowed.

NOTE:
Chinese characters must be in UTF-8 or Unicode format.

plugin_type

String

Plug-in type.

  • cors: Cross-origin resource sharing.

  • set_resp_headers: HTTP response header management.

  • kafka_log: Kafka log push.

  • breaker: Circuit breaker.

  • rate_limit: Request throttling.

  • third_auth: Third-party authentication.

  • proxy_cache: Response cache.

  • proxy_mirror: Request mirroring.

  • oidc_auth: OIDC authentication.

plugin_scope

String

Plug-in scope. Options:

  • global: visible to all integration applications

  • app: visible to the current integration application

plugin_content

String

Plug-in content in JSON format. For details, see the model definition.

  • CorsPluginContent

  • SetRespHeadersContent

  • KafkaLogContent

  • BreakerContent

  • RateLimitContent

  • ThirdAuthContent

  • ProxyCacheContent

  • ProxyMirrorContent

OIDCAuthResp:

remark

String

Plug-in description. Max. 255 characters.

create_time

String

Creation time.

update_time

String

Update time.

roma_app_id

String

Integration application ID. Valid when plugin_scope is set to app.

roma_app_name

String

Name of the integration application to which the API belongs.

Status code: 400

Table 5 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error description.

Status code: 401

Table 6 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error description.

Status code: 403

Table 7 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error description.

Status code: 404

Table 8 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error description.

Status code: 500

Table 9 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error description.

Example Requests

  • Create a CORS plug-in with plugin_scope as global.

    {
      "plugin_name" : "CORS plug-in.",
      "plugin_type" : "cors",
      "plugin_scope" : "global",
      "plugin_content" : "{\\\"allow_origin\\\":\\\"*\\\",\\\"allow_methods\\\":\\\"GET,POST,PUT,DELETE,HEAD,PATCH\\\",\\\"allow_headers\\\":\\\"Content-Type,Accept,Accept-Ranges,Cache-Control\\\",\\\"expose_headers\\\":\\\"X-Request-Id,X-Apig-Latency\\\",\\\"max_age\\\":600,\\\"allow_credentials\\\":false}",
      "remark" : "Cross-origin resource sharing."
    }
  • Create an HTTP response header plug-in with plugin_scope as global.

    {
      "plugin_name" : "HTTP response header management plug-in.",
      "plugin_type" : "set_resp_headers",
      "plugin_scope" : "global",
      "plugin_content" : "{\\\"response_headers\\\":[{\\\"name\\\":\\\"x-demo\\\",\\\"value_type\\\":\\\"custom_value\\\",\\\"value\\\":\\\"sss\\\",\\\"action\\\":\\\"append\\\"}]}",
      "remark" : "HTTP response header management."
    }
  • Create a request throttling plug-in with plugin_scope as global.

    {
      "plugin_name" : "Request throttling plug-in.",
      "plugin_type" : "rate_limit",
      "plugin_scope" : "global",
      "plugin_content" : "{\\\"scope\\\":\\\"basic\\\",\\\"default_time_unit\\\":\\\"minute\\\",\\\"default_interval\\\":1,\\\"api_limit\\\":50,\\\"app_limit\\\":0,\\\"user_limit\\\":0,\\\"ip_limit\\\":0,\\\"algorithm\\\":\\\"counter\\\",\\\"specials\\\":[],\\\"parameters\\\":[],\\\"rules\\\":[]}",
      "remark" : "Request throttling."
    }
  • Create a Kafka log push plug-in with plugin_scope as global.

    {
      "plugin_name" : "Kafka log push plug-in.",
      "plugin_type" : "kafka_log",
      "plugin_scope" : "app",
      "plugin_content" : "{\\\"broker_list\\\":[\\\"0.0.0.0:11\\\"],\\\"topic\\\":\\\"topic\\\",\\\"key\\\":\\\"\\\",\\\"max_retry_count\\\":0,\\\"retry_backoff\\\":1,\\\"sasl_config\\\":{\\\"security_protocol\\\":\\\"PLAINTEXT\\\",\\\"sasl_mechanisms\\\":\\\"PLAIN\\\",\\\"sasl_username\\\":\\\"\\\",\\\"sasl_password\\\":\\\"\\\",\\\"ssl_ca_content\\\":\\\"\\\"},\\\"meta_config\\\":{\\\"system\\\":{\\\"start_time\\\":true,\\\"request_id\\\":true,\\\"client_ip\\\":true,\\\"api_id\\\":false,\\\"user_name\\\":false,\\\"app_id\\\":false,\\\"access_model1\\\":false,\\\"request_time\\\":true,\\\"http_status\\\":true,\\\"server_protocol\\\":false,\\\"scheme\\\":true,\\\"request_method\\\":true,\\\"host\\\":false,\\\"api_uri_mode\\\":false,\\\"uri\\\":false,\\\"request_size\\\":false,\\\"response_size\\\":false,\\\"upstream_uri\\\":false,\\\"upstream_addr\\\":true,\\\"upstream_status\\\":true,\\\"upstream_connect_time\\\":false,\\\"upstream_header_time\\\":false,\\\"upstream_response_time\\\":true,\\\"all_upstream_response_time\\\":false,\\\"region_id\\\":false,\\\"auth_type\\\":false,\\\"http_x_forwarded_for\\\":true,\\\"http_user_agent\\\":true,\\\"error_type\\\":true,\\\"access_model2\\\":false,\\\"inner_time\\\":false,\\\"proxy_protocol_vni\\\":false,\\\"proxy_protocol_vpce_id\\\":false,\\\"proxy_protocol_addr\\\":false,\\\"body_bytes_sent\\\":false,\\\"api_name\\\":false,\\\"app_name\\\":false,\\\"provider_app_id\\\":false,\\\"provider_app_name\\\":false,\\\"custom_data_log01\\\":false,\\\"custom_data_log02\\\":false,\\\"custom_data_log03\\\":false,\\\"custom_data_log04\\\":false,\\\"custom_data_log05\\\":false,\\\"custom_data_log06\\\":false,\\\"custom_data_log07\\\":false,\\\"custom_data_log08\\\":false,\\\"custom_data_log09\\\":false,\\\"custom_data_log10\\\":false,\\\"response_source\\\":false},\\\"call_data\\\":{\\\"log_request_header\\\":false,\\\"request_header_filter\\\":\\\"\\\",\\\"log_request_query_string\\\":false,\\\"request_query_string_filter\\\":\\\"\\\",\\\"log_request_body\\\":false,\\\"log_response_header\\\":false,\\\"response_header_filter\\\":\\\"\\\",\\\"log_response_body\\\":false,\\\"custom_authorizer\\\":{\\\"frontend\\\":[],\\\"backend\\\":[]}}}}",
      "remark" : "Kafka log push.",
      "roma_app_id" : "df003efc-1ce7-41ef-a45a-b89dc431cb2d"
    }
  • Create a circuit breaker plug-in with plugin_scope as global.

    {
      "plugin_name" : "Circuit breaker plug-in.",
      "plugin_type" : "breaker",
      "plugin_scope" : "app",
      "plugin_content" : "{\\\"breaker_condition\\\":{\\\"breaker_type\\\":\\\"timeout\\\",\\\"breaker_mode\\\":\\\"counter\\\",\\\"unhealthy_condition\\\":\\\"\\\",\\\"unhealthy_threshold\\\":30,\\\"min_call_threshold\\\":20,\\\"unhealthy_percentage\\\":51,\\\"time_window\\\":15,\\\"open_breaker_time\\\":15},\\\"downgrade_default\\\":null,\\\"downgrade_parameters\\\":null,\\\"downgrade_rules\\\":null,\\\"scope\\\":\\\"basic\\\"}",
      "remark" : "Circuit breaker.",
      "roma_app_id" : "df003efc-1ce7-41ef-a45a-b89dc431cb2d"
    }
  • Create a third-party authentication plug-in with plugin_scope as global.

    {
      "plugin_name" : "Third-party authentication plug-in",
      "remark" : "This is a third-party authentication plug-in which contains a rule expression whitelist.",
      "plugin_type" : "third_auth",
      "plugin_scope" : "global",
      "plugin_content" : "{\\\"auth_request\\\":{\\\"method\\\":\\\"POST\\\",\\\"protocol\\\":\\\"HTTP\\\",\\\"url_domain\\\":\\\"xxx.xxx.xxx.xxx:1234\\\",\\\"timeout\\\":10,\\\"path\\\":\\\"/check\\\",\\\"vpc_channel_enabled\\\":false,\\\"vpc_channel_info\\\":{\\\"vpc_proxy_host\\\":\\\"abc.com\\\",\\\"vpc_id\\\":\\\"3c113f40a54a40369ceb1eb1409a32ee\\\"}},\\\"identities\\\":{\\\"headers\\\":[{\\\"name\\\":\\\"token\\\"}],\\\"query\\\":[{\\\"name\\\":\\\"user\\\"}]},\\\"carry_body\\\":{\\\"enabled\\\":true,\\\"max_body_size\\\":10000},\\\"carry_path_enabled\\\":false,\\\"return_resp_body_enabled\\\":true,\\\"carry_resp_headers\\\":[\\\"x-message-result\\\"],\\\"simple_auth_mode_enabled\\\":false,\\\"match_auth\\\":{\\\"key\\\":\\\"x-message-result\\\",\\\"value\\\":\\\"success\\\"},\\\"rule_enabled\\\":true,\\\"rule_type\\\":\\\"allow\\\",\\\"parameters\\\":[{\\\"value\\\":\\\"reqPath\\\",\\\"type\\\":\\\"path\\\",\\\"name\\\":\\\"reqPath\\\"},{\\\"value\\\":\\\"method\\\",\\\"type\\\":\\\"method\\\",\\\"name\\\":\\\"method\\\"},{\\\"value\\\":\\\"Host\\\",\\\"type\\\":\\\"header\\\",\\\"name\\\":\\\"Host\\\"}],\\\"rules\\\":[{\\\"match_regex\\\": \\\"[\\\\\\\"OR\\\\\\\", [\\\\\\\"reqPath\\\\\\\", \\\\\\\"~~\\\\\\\", \\\\\\\"/xxl-job-admin/*\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"==\\\\\\\", \\\\\\\"/app/leave/infor/v1/addLeaveLnfor\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"==\\\\\\\", \\\\\\\"/api/v1/charge/home/modifyChargeSync\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"==\\\\\\\", \\\\\\\"/app/mweb/campaign/api/v1/getActivityConfig\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"==\\\\\\\", \\\\\\\"/mp/vehicle/owner/home\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"==\\\\\\\", \\\\\\\"/app/mweb/campaign/api/v1/getTime\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"==\\\\\\\", \\\\\\\"/api/c-showroom-service/v1/vehicleDetails/upload\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"~~\\\\\\\", \\\\\\\"/operation-charging-bff/carOwnerRights/certificate/*\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"~~\\\\\\\", \\\\\\\"/api/2c/v1/sales-bff/*\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"==\\\\\\\", \\\\\\\"/api/2c/v1/vehicleDetails/upload\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"~~\\\\\\\", \\\\\\\"/operation-admin/*\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"==\\\\\\\", \\\\\\\"/app/settings/api/v1/receiveClk\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"==\\\\\\\", \\\\\\\"/api/vehicle/relative/yTSendVehicleControl.json\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"==\\\\\\\", \\\\\\\"/appoint/getAppointmentByTestDrive\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"==\\\\\\\", \\\\\\\"/api/evd/callBackEvdPay\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"==\\\\\\\", \\\\\\\"/api/evd/callBackEvdOrder\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"==\\\\\\\", \\\\\\\"/api/evd/getUserToken\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"==\\\\\\\", \\\\\\\"/api/evd/callBackEvdCoupon\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"==\\\\\\\", \\\\\\\"/api/task/busTriggerTaskEvent.json\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"==\\\\\\\", \\\\\\\"/datacenter-log-center/api/trackApi/commonAdd.json\\\\\\\"]]\\\", \\\"rule_name\\\": \\\"allow2\\\"}],\\\"custom_forbid_limit\\\":100,\\\"auth_downgrade_enabled\\\":false}"
    }
  • Creating a response cache plug-in

    {
      "plugin_name" : "Response cache plug-in",
      "remark" : "This is a response cache plug-in.",
      "plugin_type" : "proxy_cache",
      "plugin_scope" : "global",
      "plugin_content" : "{\\\"cache_key\\\": {\\\"system_params\\\": [\\\"$context.sourceIp\\\",\\\"$context.requestId\\\"],\\\"parameters\\\": [\\\"demo_parameter\\\"],\\\"headers\\\": [\\\"demo_header\\\"]},\\\"cache_http_status_and_ttl\\\": [{\\\"http_status\\\": [200],\\\"ttl\\\": 300},{\\\"http_status\\\": [300],\\\"ttl\\\": 200}],\\\"client_cache_control\\\": {\\\"mode\\\": \\\"apps\\\",\\\"datas\\\": [\\\"demo_app_id_1,demo_app_id_2\\\"]},\\\"cacheable_headers\\\": [\\\"demo_cacheable_headers_1,demo_cacheable_headers_2\\\"]}"
    }
  • Creating a request mirroring plug-in

    {
      "plugin_name" : "Request mirroring plug-in",
      "remark" : "This is a request mirroring plug-in.",
      "plugin_type" : "proxy_mirror",
      "plugin_scope" : "global",
      "plugin_content" : "{\\\"protocol\\\": \\\"http\\\",\\\"host\\\": \\\"xxx.xxx.xxx.xxx:1234\\\",\\\"path\\\": \\\"/test\\\",\\\"path_concat_mode\\\": \\\"replace\\\",\\\"sample_ratio\\\": 1,\\\"timeout\\\": 5000,\\\"mirror_request_body_enabled\\\": true}"
    }

Example Responses

Status code: 201

OK

  • {
      "plugin_id" : "5b729aa252764739b3s237ef0d66dc63",
      "plugin_name" : "CORS plug-in",
      "plugin_type" : "cors",
      "plugin_scope" : "global",
      "plugin_content" : "{\\\"allow_origin\\\":\\\"*\\\",\\\"allow_methods\\\":\\\"GET,POST,PUT,DELETE,HEAD,PATCH\\\",\\\"allow_headers\\\":\\\"Content-Type,Accept,Accept-Ranges,Cache-Control\\\",\\\"expose_headers\\\":\\\"X-Request-Id,X-Apig-Latency\\\",\\\"max_age\\\":600,\\\"allow_credentials\\\":false}",
      "remark" : "Cross-origin resource sharing (CORS)",
      "create_time" : "2022-11-02T12:31:23.353Z",
      "update_time" : "2022-11-02T12:31:23.353Z"
    }
  • {
      "plugin_id" : "8a688dce7d0c45cf84edac3d7b071769",
      "plugin_name" : "HTTP response header plug-in",
      "plugin_type" : "set_resp_headers",
      "plugin_scope" : "global",
      "plugin_content" : "{\\\"response_headers\\\":[{\\\"name\\\":\\\"x-demo\\\",\\\"value_type\\\":\\\"custom_value\\\",\\\"value\\\":\\\"sss\\\",\\\"action\\\":\\\"append\\\"}]}",
      "remark" : "HTTP response header management",
      "create_time" : "2022-11-02T12:31:23.353Z",
      "update_time" : "2022-11-02T12:31:23.353Z"
    }
  • {
      "plugin_id" : "9642ff2b9a86481689ca9d28babcfd7f",
      "plugin_name" : "Request throttling plug-in",
      "plugin_type" : "rate_limit",
      "plugin_scope" : "global",
      "plugin_content" : "{\\\"scope\\\":\\\"basic\\\",\\\"default_time_unit\\\":\\\"minute\\\",\\\"default_interval\\\":1,\\\"api_limit\\\":50,\\\"app_limit\\\":0,\\\"user_limit\\\":0,\\\"ip_limit\\\":0,\\\"algorithm\\\":\\\"counter\\\",\\\"specials\\\":[],\\\"parameters\\\":[],\\\"rules\\\":[]}",
      "remark" : "Request throttling",
      "create_time" : "2022-11-02T12:31:23.353Z",
      "update_time" : "2022-11-02T12:31:23.353Z"
    }
  • {
      "plugin_id" : "92284ece6ec7466da2c2ac2416f46d5d",
      "plugin_name" : "Kafka log plug-in",
      "plugin_type" : "kafka_log",
      "plugin_scope" : "app",
      "plugin_content" : "{\\\"broker_list\\\":[\\\"0.0.0.0:11\\\"],\\\"topic\\\":\\\"topic\\\",\\\"key\\\":\\\"\\\",\\\"max_retry_count\\\":0,\\\"retry_backoff\\\":1,\\\"sasl_config\\\":{\\\"security_protocol\\\":\\\"PLAINTEXT\\\",\\\"sasl_mechanisms\\\":\\\"PLAIN\\\",\\\"sasl_username\\\":\\\"\\\",\\\"sasl_password\\\":\\\"\\\",\\\"ssl_ca_content\\\":\\\"\\\"},\\\"meta_config\\\":{\\\"system\\\":{\\\"start_time\\\":true,\\\"request_id\\\":true,\\\"client_ip\\\":true,\\\"api_id\\\":false,\\\"user_name\\\":false,\\\"app_id\\\":false,\\\"access_model1\\\":false,\\\"request_time\\\":true,\\\"http_status\\\":true,\\\"server_protocol\\\":false,\\\"scheme\\\":true,\\\"request_method\\\":true,\\\"host\\\":false,\\\"api_uri_mode\\\":false,\\\"uri\\\":false,\\\"request_size\\\":false,\\\"response_size\\\":false,\\\"upstream_uri\\\":false,\\\"upstream_addr\\\":true,\\\"upstream_status\\\":true,\\\"upstream_connect_time\\\":false,\\\"upstream_header_time\\\":false,\\\"upstream_response_time\\\":true,\\\"all_upstream_response_time\\\":false,\\\"region_id\\\":false,\\\"auth_type\\\":false,\\\"http_x_forwarded_for\\\":true,\\\"http_user_agent\\\":true,\\\"error_type\\\":true,\\\"access_model2\\\":false,\\\"inner_time\\\":false,\\\"proxy_protocol_vni\\\":false,\\\"proxy_protocol_vpce_id\\\":false,\\\"proxy_protocol_addr\\\":false,\\\"body_bytes_sent\\\":false,\\\"api_name\\\":false,\\\"app_name\\\":false,\\\"provider_app_id\\\":false,\\\"provider_app_name\\\":false,\\\"custom_data_log01\\\":false,\\\"custom_data_log02\\\":false,\\\"custom_data_log03\\\":false,\\\"custom_data_log04\\\":false,\\\"custom_data_log05\\\":false,\\\"custom_data_log06\\\":false,\\\"custom_data_log07\\\":false,\\\"custom_data_log08\\\":false,\\\"custom_data_log09\\\":false,\\\"custom_data_log10\\\":false,\\\"response_source\\\":false},\\\"call_data\\\":{\\\"log_request_header\\\":false,\\\"request_header_filter\\\":\\\"\\\",\\\"log_request_query_string\\\":false,\\\"request_query_string_filter\\\":\\\"\\\",\\\"log_request_body\\\":false,\\\"log_response_header\\\":false,\\\"response_header_filter\\\":\\\"\\\",\\\"log_response_body\\\":false,\\\"custom_authorizer\\\":{\\\"frontend\\\":[],\\\"backend\\\":[]}}}}",
      "remark" : "Kafka log push",
      "roma_app_id" : "df003efc-1ce7-41ef-a45a-b89dc431cb2d",
      "create_time" : "2022-11-02T12:31:23.353Z",
      "update_time" : "2022-11-02T12:31:23.353Z"
    }
  • {
      "plugin_id" : "8b5253ed723c4a878e7b8532c08763b4",
      "plugin_name" : "Circuit breaker plug-in",
      "plugin_type" : "breaker",
      "plugin_scope" : "app",
      "plugin_content" : "{\\\"breaker_condition\\\":{\\\"breaker_type\\\":\\\"timeout\\\",\\\"breaker_mode\\\":\\\"counter\\\",\\\"unhealthy_condition\\\":\\\"\\\",\\\"unhealthy_threshold\\\":30,\\\"min_call_threshold\\\":20,\\\"unhealthy_percentage\\\":51,\\\"time_window\\\":15,\\\"open_breaker_time\\\":15},\\\"downgrade_default\\\":null,\\\"downgrade_parameters\\\":null,\\\"downgrade_rules\\\":null,\\\"scope\\\":\\\"basic\\\"}",
      "remark" : "Circuit breaker",
      "roma_app_id" : "df003efc-1ce7-41ef-a45a-b89dc431cb2d",
      "create_time" : "2022-11-02T12:31:23.353Z",
      "update_time" : "2022-11-02T12:31:23.353Z"
    }
  • {
      "plugin_id" : "235d97683439437585aff06020059720",
      "plugin_name" : "Third-party authentication plug-in",
      "plugin_type" : "third_auth",
      "plugin_scope" : "global",
      "plugin_content" : "{\\\"auth_request\\\":{\\\"method\\\":\\\"POST\\\",\\\"protocol\\\":\\\"HTTP\\\",\\\"url_domain\\\":\\\"xxx.xxx.xxx.xxx:1234\\\",\\\"path\\\":\\\"/check\\\",\\\"timeout\\\":10,\\\"vpc_channel_enabled\\\":2,\\\"vpc_channel_info\\\":null},\\\"identities\\\":{\\\"headers\\\":[{\\\"name\\\":\\\"token\\\",\\\"essential\\\":false}],\\\"queries\\\":null},\\\"carry_body\\\":{\\\"enabled\\\":true,\\\"max_body_size\\\":10000},\\\"carry_path_enabled\\\":false,\\\"return_resp_body_enabled\\\":true,\\\"carry_resp_headers\\\":[\\\"x-message-result\\\"],\\\"simple_auth_mode_enabled\\\":false,\\\"match_auth\\\":{\\\"key\\\":\\\"x-message-result\\\",\\\"value\\\":\\\"success\\\"},\\\"parameters\\\":[{\\\"type\\\":\\\"path\\\",\\\"name\\\":\\\"reqPath\\\",\\\"value\\\":\\\"reqPath\\\"},{\\\"type\\\":\\\"method\\\",\\\"name\\\":\\\"method\\\",\\\"value\\\":\\\"method\\\"},{\\\"type\\\":\\\"header\\\",\\\"name\\\":\\\"Host\\\",\\\"value\\\":\\\"Host\\\"}],\\\"rules\\\":[{\\\"rule_name\\\":\\\"allow2\\\",\\\"match_regex\\\":\\\"[\\\\\\\"OR\\\\\\\", [\\\\\\\"reqPath\\\\\\\", \\\\\\\"~~\\\\\\\", \\\\\\\"/xxl-job-admin/*\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"==\\\\\\\", \\\\\\\"/app/leave/infor/v1/addLeaveLnfor\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"==\\\\\\\", \\\\\\\"/api/v1/charge/home/modifyChargeSync\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"==\\\\\\\", \\\\\\\"/app/mweb/campaign/api/v1/getActivityConfig\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"==\\\\\\\", \\\\\\\"/mp/vehicle/owner/home\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"==\\\\\\\", \\\\\\\"/app/mweb/campaign/api/v1/getTime\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"==\\\\\\\", \\\\\\\"/api/c-showroom-service/v1/vehicleDetails/upload\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"~~\\\\\\\", \\\\\\\"/operation-charging-bff/carOwnerRights/certificate/*\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"~~\\\\\\\", \\\\\\\"/api/2c/v1/sales-bff/*\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"==\\\\\\\", \\\\\\\"/api/2c/v1/vehicleDetails/upload\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"~~\\\\\\\", \\\\\\\"/operation-admin/*\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"==\\\\\\\", \\\\\\\"/app/settings/api/v1/receiveClk\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"==\\\\\\\", \\\\\\\"/api/vehicle/relative/yTSendVehicleControl.json\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"==\\\\\\\", \\\\\\\"/appoint/getAppointmentByTestDrive\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"==\\\\\\\", \\\\\\\"/api/evd/callBackEvdPay\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"==\\\\\\\", \\\\\\\"/api/evd/callBackEvdOrder\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"==\\\\\\\", \\\\\\\"/api/evd/getUserToken\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"==\\\\\\\", \\\\\\\"/api/evd/callBackEvdCoupon\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"==\\\\\\\", \\\\\\\"/api/task/busTriggerTaskEvent.json\\\\\\\"], [\\\\\\\"reqPath\\\\\\\", \\\\\\\"==\\\\\\\", \\\\\\\"/datacenter-log-center/api/trackApi/commonAdd.json\\\\\\\"]]\\\"}],\\\"rule_type\\\":\\\"allow\\\",\\\"rule_enabled\\\":true,\\\"custom_forbid_limit\\\":100,\\\"auth_downgrade_enabled\\\":false}",
      "remark" : "This is a third-party authentication plug-in that contains a rule expression whitelist.",
      "create_time" : "2023-05-06T06:54:59.296181801Z",
      "update_time" : "2023-05-06T06:54:59.296182035Z"
    }
  • {
      "plugin_id" : "d5bf25cf31e04e888907b8ad72563f45",
      "plugin_name" : "Response cache plug-in",
      "plugin_type" : "proxy_cache",
      "plugin_scope" : "global",
      "plugin_content" : "{\\\"cache_key\\\": {\\\"system_params\\\": [\\\"$context.sourceIp\\\",\\\"$context.requestId\\\"],\\\"parameters\\\": [\\\"demo_parameter\\\"],\\\"headers\\\": [\\\"demo_header\\\"]},\\\"cache_http_status_and_ttl\\\": [{\\\"http_status\\\": [200],\\\"ttl\\\": 300},{\\\"http_status\\\": [300],\\\"ttl\\\": 200}],\\\"client_cache_control\\\": {\\\"mode\\\": \\\"apps\\\",\\\"datas\\\": [\\\"demo_app_id_1,demo_app_id_2\\\"]},\\\"cacheable_headers\\\": [\\\"demo_cacheable_headers_1,demo_cacheable_headers_2\\\"]}",
      "remark" : "This is a response cache plug-in.",
      "create_time" : "2024-03-18T12:31:23.353Z",
      "update_time" : "2024-03-18T12:31:23.353Z"
    }
  • {
      "plugin_id" : "d5bf25cf31e04e888907b8ad72563f45",
      "plugin_name" : "Request mirroring plug-in",
      "plugin_type" : "proxy_mirror",
      "plugin_scope" : "global",
      "plugin_content" : "{\\\"protocol\\\": \\\"http\\\",\\\"host\\\": \\\"xxx.xxx.xxx.xxx:1234\\\",\\\"path\\\": \\\"/test\\\",\\\"path_concat_mode\\\": \\\"replace\\\",\\\"sample_ratio\\\": 1,\\\"timeout\\\": 5000,\\\"mirror_request_body_enabled\\\": true}",
      "remark" : "This is a request mirroring plug-in.",
      "create_time" : "2024-03-18T12:31:23.353Z",
      "update_time" : "2024-03-18T12:31:23.353Z"
    }

Status code: 400

Bad Request

{
  "error_code" : "APIG.3326",
  "error_msg" : "The plugin name already exists"
}

Status code: 401

Unauthorized

{
  "error_code" : "APIG.1002",
  "error_msg" : "Incorrect token or token resolution failed"
}

Status code: 403

Forbidden

{
  "error_code" : "APIG.1005",
  "error_msg" : "No permissions to request this method"
}

Status code: 404

Not Found

{
  "error_code" : "APIG.3030",
  "error_msg" : "The instance does not exist;id:f0fa1789-3b76-433b-a787-9892951c620ec"
}

Status code: 500

Internal Server Error

{
  "error_code" : "APIG.9999",
  "error_msg" : "System error"
}

Status Codes

Status Code

Description

201

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

500

Internal Server Error

Error Codes

See Error Codes.