云服务器内容精选

  • 响应示例 状态码: 200 OK { "total" : 3, "size" : 3, "apis" : [ { "arrange_necessary" : 2, "id" : "5f918d104dc84480a75166ba99efff21", "tags" : [ "webApi" ], "backend_type" : "HTTP", "auth_type" : "AUTHORIZER", "auth_opt" : { "app_code_auth_type" : "DISABLE" }, "authorizer_id" : "8d0443832a194eaa84244e0c1c1912ac", "cors" : false, "status" : 1, "group_name" : "api_group_001", "group_id" : "c77f5e81d9cb4424bf704ef2b0ac7600", "group_version" : "V1", "match_mode" : "NORMAL", "name" : "Api_http", "req_protocol" : "HTTPS", "req_method" : "GET", "req_uri" : "/test/http", "type" : 1, "version" : "V0.0.1", "register_time" : "2020-07-31T12:42:51Z", "update_time" : "2020-08-02T16:32:47.046289Z", "remark" : "Web backend API" }, { "id" : "3a955b791bd24b1c9cd94c745f8d1aad", "group_id" : "c77f5e81d9cb4424bf704ef2b0ac7600", "group_name" : "api_group_001", "group_version" : "V1", "match_mode" : "SWA", "name" : "Api_mock", "auth_type" : " IAM ", "auth_opt" : { "auth_code_auth_type" : "DISABLE" }, "backend_type" : "MOCK", "cors" : false, "req_protocol" : "HTTPS", "req_uri" : "/test/mock", "remark" : "Mock backend API", "type" : 1, "version" : "V0.0.1", "req_method" : "GET", "result_normal_sample" : "Example success response", "result_failure_sample" : "Example failure response", "tags" : [ "mockApi" ], "register_time" : "2020-08-02T15:56:52Z", "update_time" : "2020-08-02T15:56:52Z", "status" : 1 }, { "id" : "abd9c4b2ff974888b0ba79be7e6b2763", "arrange_necessary" : 2, "group_id" : "c77f5e81d9cb4424bf704ef2b0ac7600", "group_name" : "api_group_001", "group_version" : "V1", "match_mode" : "NORMAL", "name" : "Api_function", "auth_type" : "APP", "auth_opt" : { "auth_code_auth_type" : "DISABLE" }, "backend_type" : "FUNCTION", "cors" : false, "req_protocol" : "HTTPS", "req_uri" : "/test/function", "remark" : "FunctionGraph backend API", "type" : 1, "version" : "V0.0.1", "status" : 1, "req_method" : "GET", "tags" : [ "functionApi" ], "register_time" : "2020-08-02T15:36:19Z", "update_time" : "2020-08-02T15:47:53.499266Z" } ] } 状态码: 400 Bad Request { "error_code" : "APIG.2012", "error_msg" : "Invalid parameter value,parameterName:name. Please refer to the support documentation" } 状态码: 401 Unauthorized { "error_code" : "APIG.1002", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "APIG.1005", "error_msg" : "No permissions to request this method" } 状态码: 500 Internal Server Error { "error_code" : "APIG.9999", "error_msg" : "System error" }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 size Integer 本次返回的列表长度 total Long 满足条件的记录数 apis Array of ApiInfoPerPage objects 本次查询到的API列表 表5 ApiInfoPerPage 参数 参数类型 描述 name String API名称。 支持汉字、英文、数字、中划线、下划线、点、斜杠、中英文格式下的小括号和冒号、中文格式下的顿号,且只能以英文、汉字和数字开头,3-255个字符。 说明: 中文字符必须为UTF-8或者unicode编码。 type Integer API类型 1:公有API 2:私有API version String API的版本 最大长度:16 req_protocol String API的请求协议 HTTP HTTPS BOTH:同时支持HTTP和HTTPS GRP CS 缺省值:HTTPS req_method String API的请求方式,当API的请求协议为GRPC类型协议时请求方式固定为POST。 req_uri String 请求地址。可以包含请求参数,用{}标识,比如/getUserInfo/{userId},支持 * / %- _ . 等特殊字符,总长度不超过512,且满足URI规范。 说明: 需要服从URI规范。 auth_type String API的认证方式 NONE:无认证 APP:APP认证 IAM:IAM认证 AUTHORIZER:自定义认证,当auth_type取值为AUTHORIZER时,authorizer_id字段必须传入 auth_opt AuthOpt object 认证方式参数 cors Boolean 是否支持跨域 TRUE:支持 FALSE:不支持 缺省值:false match_mode String API的匹配方式 SWA:前缀匹配 NORMAL:正常匹配(绝对匹配) 默认:NORMAL backend_type String 后端类型 HTTP:web后端 FUNCTION: 函数工作流 ,当backend_type取值为FUNCTION时,func_info字段必须传入 MOCK:模拟的后端,当backend_type取值为MOCK时,mock_info字段必须传入 GRPC:grpc后端 remark String API描述。字符长度不超过255 说明: 中文字符必须为UTF-8或者unicode编码。 group_id String API所属的分组编号 body_remark String API请求体描述,可以是请求体示例、媒体类型、参数等信息。字符长度不超过20480 说明: 中文字符必须为UTF-8或者unicode编码。 result_normal_sample String 正常响应示例,描述API的正常返回信息。字符长度不超过20480 说明: 中文字符必须为UTF-8或者unicode编码。 当API的请求协议为GRPC类型时不支持配置。 result_failure_sample String 失败返回示例,描述API的异常返回信息。字符长度不超过20480 说明: 中文字符必须为UTF-8或者unicode编码。 当API的请求协议为GRPC类型时不支持配置。 authorizer_id String 前端自定义认证对象的ID tags Array of strings 标签。 支持英文,数字,中文,特殊符号(-*#%.:_),且只能以中文或英文开头。 默认支持10个标签,如需扩大配额请联系技术工程师修改API_TAG_NUM_LIMIT配置。 最小长度:1 最大长度:128 response_id String 分组自定义响应ID roma_app_id String 集成应用ID 暂不支持 domain_name String API绑定的自定义 域名 暂不支持 tag String 标签 待废弃,优先使用tags字段 content_type String 请求内容格式类型: application/json application/xml multipart/form-data text/plain is_send_fg_body_base64 Boolean 是否对与FunctionGraph交互场景的body进行Base64编码。仅当content_type为application/json时,可以不对body进行Base64编码。 应用场景: 自定义认证 绑定断路器插件,且断路器后端降级策略为函数后端 API后端类型为函数工作流 缺省值:true id String API编号 status Integer API状态 1: 有效 arrange_necessary Integer 是否需要编排 register_time String API注册时间 update_time String API修改时间 group_name String API所属分组的名称 group_version String API所属分组的版本 默认V1,其他版本暂不支持 缺省值:V1 run_env_id String 发布的环境编号 存在多个发布记录时,环境编号之间用|隔开 run_env_name String 发布的环境名称 存在多个发布记录时,环境名称之间用|隔开 publish_id String 发布记录编号 存在多个发布记录时,发布记录编号之间用|隔开 publish_time String 发布时间 存在多个发布记录时,发布时间之间用|隔开 roma_app_name String API归属的集成应用名称 暂不支持 ld_api_id String 当API的后端为自定义后端时,对应的自定义后端API编号 暂不支持 backend_api BackendApi object 后端信息 api_group_info ApiGroupCommonInfo object api分组信息 req_params Array of ReqParam objects API的请求参数列表 表6 AuthOpt 参数 参数类型 描述 app_code_auth_type String AppCode简易认证类型,仅在auth_type为APP时生效,默认为DISABLE: DISABLE:不开启简易认证 HEADER:开启简易认证且AppCode位置在HEADER 缺省值:DISABLE 表7 BackendApi 参数 参数类型 描述 authorizer_id String 后端自定义认证对象的ID url_domain String 后端服务的地址。 由主机(IP或域名)和端口号组成,总长度不超过255。格式为主机:端口(如:apig.example.com:7443)。如果不写端口,则HTTPS默认端口号为443,HTTP默认端口号为80。 支持环境变量,使用环境变量时,每个变量名的长度为3 ~ 32位的字符串,字符串由英文字母、数字、下划线、中划线组成,且只能以英文开头 req_protocol String 请求协议,后端类型为GRPC时请求协议可选GRPC、GRPCS remark String 描述。字符长度不超过255 说明: 中文字符必须为UTF-8或者unicode编码。 req_method String 请求方式,后端类型为GRPC时请求方式固定为POST version String web后端版本,字符长度不超过16 req_uri String 请求地址。可以包含请求参数,用{}标识,比如/getUserInfo/{userId},支持 * / %- _ . 等特殊字符,总长度不超过512,且满足URI规范。 支持环境变量,使用环境变量时,每个变量名的长度为3 ~ 32位的字符串,字符串由英文字母、数字、中划线、下划线组成,且只能以英文开头。 说明: 需要服从URI规范。 后端类型为GRPC时请求地址固定为/ timeout Integer API网关请求后端服务的超时时间。最大超时时间可通过实例特性backend_timeout配置修改,可修改的上限为600000。 单位:毫秒。 最小值:1 enable_client_ssl Boolean 是否开启双向认证 retry_count String 请求后端服务的重试次数,默认为-1,范围[-1,10]。 当该值为-1时,幂等的接口会重试1次,非幂等的不会重试。POST,PATCH方法为非幂等;GET,HEAD,PUT,OPTIONS和DELETE等方法为幂等的。 缺省值:-1 enable_sm_channel Boolean 是否启用SM商密通道。 仅实例支持SM系列商密算法的实例时支持开启。 id String 编号 status Integer 后端状态 1: 有效 register_time String 注册时间 update_time String 修改时间 vpc_channel_info VpcInfo object VPC通道详情。如果vpc_channel_status = 1,则这个object类型为必填信息 vpc_channel_status Integer 是否使用VPC通道 1:使用VPC通道 2:不使用VPC通道 表8 VpcInfo 参数 参数类型 描述 ecs_id String 云服务器ID ecs_name String 云服务器名称 cascade_flag Boolean 是否使用级联方式 暂不支持 vpc_channel_proxy_host String 代理主机 vpc_channel_id String VPC通道编号 vpc_channel_port Integer VPC通道端口 表9 ApiGroupCommonInfo 参数 参数类型 描述 id String 编号 name String API分组名称 status Integer 状态 1: 有效 sl_domain String 系统默认分配的子域名 register_time String 创建时间 update_time String 最近修改时间 on_sell_status Integer 是否已上架云商店: 1:已上架 2:未上架 3:审核中 url_domains Array of UrlDomain objects 分组上绑定的独立域名列表 sl_domain_access_enabled Boolean 调试域名是否可以访问,true表示可以访问,false表示禁止访问 缺省值:true 表10 UrlDomain 参数 参数类型 描述 id String 域名编号 domain String 访问域名 cname_status Integer 域名cname状态: 1:未解析 2:解析中 3:解析成功 4:解析失败 ssl_id String SSL证书编号 ssl_name String SSL证书名称 min_ssl_version String 最小ssl协议版本号。支持TLSv1.1或TLSv1.2 缺省值:TLSv1.1 verified_client_certificate_enabled Boolean 是否开启客户端证书校验。只有绑定证书时,该参数才生效。当绑定证书存在trusted_root_ca时,默认开启;当绑定证书不存在trusted_root_ca时,默认关闭。 缺省值:false is_has_trusted_root_ca Boolean 是否存在信任的根证书CA。当绑定证书存在trusted_root_ca时为true。 缺省值:false ingress_http_port Integer 访问该域名绑定的http协议入方向端口,-1表示无端口且协议不支持,可使用80默认端口,其他有效端口允许的取值范围为1024~49151,需为实例已开放的HTTP协议的自定义入方向端口。 当创建域名时,该参数未填表示用默认80端口;如果填写该参数,则必须同时填写https_port;如果要http_port和https_port同时使用默认端口,则两个参数都不填。 当修改域名时,该参数未填表示不修改该端口。 最小值:-1 最大值:49151 ingress_https_port Integer 访问该域名绑定的https协议入方向端口,-1表示无端口且协议不支持,可使用443默认端口,其他有效端口允许的取值范围为1024~49151,需为实例已开放的HTTPS协议的自定义入方向端口。 当创建域名时,该参数未填表示用默认443端口;如果填写该参数,则必须同时填写http_port;如果要http_port和https_port同时使用默认端口,则两个参数都不填。 当修改域名时,该参数未填表示不修改该端口。 最小值:-1 最大值:49151 ssl_infos Array of SslInfo objects SSL证书列表。 表11 SslInfo 参数 参数类型 描述 ssl_id String SSL证书编号。 ssl_name String SSL证书名称。 algorithm_type String 证书算法类型: RSA ECC SM2 type String 证书可见范围: instance:当前实例 global:全局 缺省值:global 表12 ReqParam 参数 参数类型 描述 name String 参数名称。 长度为1 ~ 32位的字符串,字符串由英文字母、数字、中划线、下划线、英文句号组成,且只能以英文开头。 type String 参数类型 location String 参数位置 default_value String 参数默认值 sample_value String 参数示例值 required Integer 是否必须 1:是 2:否 location为PATH时,required默认为1,其他场景required默认为2 valid_enable Integer 是否开启校验 1:开启校验 2:不开启校验 缺省值:2 remark String 描述信息。长度不超过255个字符 说明: 中文字符必须为UTF-8或者unicode编码。 enumerations String 参数枚举值 min_num Integer 参数最小值 参数类型为NUMBER时有效 max_num Integer 参数最大值 参数类型为NUMBER时有效 min_size Integer 参数最小长度 参数类型为STRING时有效 max_size Integer 参数最大长度 参数类型为STRING时有效 regular String 正则校验规则 暂不支持 json_schema String JSON校验规则 暂不支持 pass_through Integer 是否透传 1:是 2:否 orchestrations Array of strings 请求参数匹配编排规则的生效优先级与列表顺序保持一致,列表中靠前的配置匹配优先级较高; 如果编排规则列表中包含none_value类型的规则,则none_value类型的规则优先级最高,至多绑定一个none_value类型的规则; 如果编排规则列表中包含default类型的规则,则default类型的规则优先级最低,至多绑定一个default类型的规则; 当编排规则为预处理策略时,该规则不能作为除default以外的最后一个编排规则; 每个API仅允许选择一个参数绑定编排规则,且编排规则不能重复,支持绑定的编排规则数量有配额限制,具体请参见产品介绍的“约束与限制”章节。 id String 参数编号 状态码: 400 表13 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 401 表14 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 403 表15 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 500 表16 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • URI GET /v2/{project_id}/apigw/instances/{instance_id}/apis 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方式请参见获取项目ID。 instance_id 是 String 实例ID,在API网关控制台的“实例信息”中获取。 表2 Query参数 参数 是否必选 参数类型 描述 offset 否 Long 偏移量,表示从此偏移量开始查询,偏移量小于0时,自动转换为0 缺省值:0 limit 否 Integer 每页显示的条目数量,条目数量小于等于0时,自动转换为20,条目数量大于500时,自动转换为500 最小值:1 最大值:500 缺省值:20 id 否 String API编号 name 否 String API名称 group_id 否 String API分组编号 req_protocol 否 String 请求协议 req_method 否 String 请求方法 req_uri 否 String 请求路径 auth_type 否 String 授权类型 env_id 否 String 发布的环境编号 type 否 Integer API类型 precise_search 否 String 指定需要精确匹配查找的参数名称,目前仅支持name、req_uri vpc_channel_name 否 String 负载通道名称 return_data_mode 否 String 指定API详情中需要包含的额外返回结果,多个参数之间使用“,”隔开,当brief和其他include参数共同使用时,brief不生效。 目前仅支持brief,include_group,include_group_backend。 brief:默认值,不包含额外信息。 include_group:返回结果中包含api_group_info。 include_group_backend:返回结果中包含backend_api。 缺省值:brief tags 否 String API标签,该参数可指定多个,多个不同的参数值为或关系;不指定或为空时,表示不筛选标签;指定为#no_tags#时,表示筛选无标签API。 最小长度:0 最大长度:128
  • 请求示例 创建Web后端API { "group_id" : "c77f5e81d9cb4424bf704ef2b0ac7600", "match_mode" : "NORMAL", "name" : "Api_http", "auth_type" : "AUTHORIZER", "authorizer_id" : "0d982c1ac3da493dae47627b6439fc5c", "backend_type" : "HTTP", "backend_api" : { "url_domain" : "10.10.10.156:12346", "req_protocol" : "HTTP", "req_method" : "GET", "req_uri" : "/test/benchmark", "timeout" : 5000 }, "req_protocol" : "HTTPS", "req_uri" : "/test/http", "remark" : "Web backend API", "type" : 1, "req_method" : "GET", "result_normal_sample" : "normal result", "result_failure_sample" : "failure result", "tags" : [ "webApi" ], "req_params" : [ { "name" : "query_demo", "location" : "QUERY", "type" : "STRING", "required" : 1 }, { "name" : "header-demo", "location" : "HEADER", "type" : "STRING", "required" : 2 } ], "backend_params" : [ { "name" : "backHeader", "value" : "header-demo", "location" : "HEADER", "origin" : "REQUEST" }, { "name" : "backQuery", "value" : "query_demo", "location" : "QUERY", "origin" : "REQUEST" }, { "name" : "X-CONSTANT-HEADER", "value" : "demo", "location" : "HEADER", "origin" : "CONSTANT", "remark" : "constant_demo" }, { "name" : "app-id", "value" : "$context.appId", "location" : "HEADER", "origin" : "SYSTEM", "remark" : "consumer app id" } ] } 创建函数工作流后端API { "group_id" : "c77f5e81d9cb4424bf704ef2b0ac7600", "match_mode" : "NORMAL", "name" : "Api_function", "auth_type" : "APP", "backend_type" : "FUNCTION", "func_info" : { "authorizer_id" : "5b8cd3f06f004115aec69c58f57272c9", "function_urn" : "'urn:fss:region01:73d69ae0cfcf460190522d06b60f05ad:function:default:auto_testfunc93749'", "invocation_type" : "sync", "timeout" : 5000, "version" : "latest" }, "req_protocol" : "HTTPS", "req_uri" : "/test/function", "remark" : "function API", "type" : 1, "req_method" : "GET", "result_normal_sample" : "normal result", "result_failure_sample" : "failure result", "tags" : [ "functionApi" ] } 创建模拟后端API { "group_id" : "c77f5e81d9cb4424bf704ef2b0ac7600", "match_mode" : "SWA", "name" : "Api_mock", "auth_type" : "IAM", "backend_type" : "MOCK", "mock_info" : { "result_content" : "mock success" }, "policy_mocks" : [ { "name" : "mock_policy_backend", "effect_mode" : "ANY", "result_content" : "mock policy success", "conditions" : [ { "condition_origin" : "source", "condition_value" : "1.0.1.0" } ] } ], "req_protocol" : "HTTPS", "req_uri" : "/test/mock", "remark" : "mock api", "type" : 1, "req_method" : "GET", "result_normal_sample" : "normal result", "result_failure_sample" : "failure result", "tags" : [ "mockApi" ] }
  • 响应示例 状态码: 201 Created 示例 1 { "id" : "5f918d104dc84480a75166ba99efff21", "tags" : [ "webApi" ], "arrange_necessary" : 2, "backend_type" : "HTTP", "auth_type" : "AUTHORIZER", "auth_opt" : { "app_code_auth_type" : "DISABLE" }, "authorizer_id" : "0d982c1ac3da493dae47627b6439fc5c", "backend_api" : { "update_time" : "2020-07-31T12:42:51.325312994Z", "vpc_status" : 2, "url_domain" : "10.10.10.156:12346", "req_protocol" : "HTTP", "id" : "1ce8fda3586d4371bd83c955df37e102", "req_method" : "GET", "register_time" : "2020-07-31T12:42:51.325312721Z", "req_uri" : "/benchmark", "timeout" : 5000, "status" : 1 }, "cors" : false, "status" : 1, "group_name" : "api_group_001", "group_id" : "c77f5e81d9cb4424bf704ef2b0ac7600", "group_version" : "V1", "response_id" : "981e6c8f847f47199a9faf4409b751a5", "match_mode" : "NORMAL", "name" : "Api_http", "req_protocol" : "HTTPS", "req_method" : "GET", "req_uri" : "/test/http", "type" : 1, "result_normal_sample" : "normal result", "result_failure_sample" : "failure result", "version" : "V0.0.1", "register_time" : "2020-07-31T12:42:51.314357035Z", "update_time" : "2020-07-31T12:42:51.314357324Z", "remark" : "Web backend API", "req_params" : [ { "name" : "query_demo", "location" : "QUERY", "type" : "STRING", "valid_enable" : 2, "required" : 1, "id" : "57c8bf3c97ef40ee94eace95dff30014", "pass_through" : 1 }, { "name" : "header-demo", "location" : "HEADER", "type" : "STRING", "valid_enable" : 2, "required" : 2, "id" : "8d993be96980415faa6b1fb2ebd647e0", "pass_through" : 1 } ], "backend_params" : [ { "name" : "backHeader", "value" : "header-demo", "location" : "HEADER", "origin" : "REQUEST", "id" : "709f0ea376b44aaf907aaaa37d8cce92", "req_param_id" : "8d993be96980415faa6b1fb2ebd647e0" }, { "name" : "backQuery", "value" : "query_demo", "location" : "QUERY", "origin" : "REQUEST", "id" : "2f152d0fb54445039158d29c2a4f69ee", "req_param_id" : "57c8bf3c97ef40ee94eace95dff30014" }, { "name" : "X-CONSTANT-HEADER", "value" : "demo", "location" : "HEADER", "origin" : "CONSTANT", "remark" : "constant_demo", "id" : "20142102c6aa4f3c97d5fd6ef4010ac2" }, { "name" : "app-id", "value" : "$context.appId", "location" : "HEADER", "origin" : "SYSTEM", "remark" : "consumer app id", "id" : "a1349c61016e4d999ca783a50bfeee2b" } ] } 示例 2 { "id" : "abd9c4b2ff974888b0ba79be7e6b2763", "arrange_necessary" : 2, "group_id" : "c77f5e81d9cb4424bf704ef2b0ac7600", "group_name" : "api_group_001", "group_version" : "V1", "match_mode" : "NORMAL", "name" : "Api_function", "auth_type" : "APP", "auth_opt" : { "auth_code_auth_type" : "DISABLE" }, "backend_type" : "FUNCTION", "func_info" : { "id" : "c0740524cd4c40e3801a7afe5375f8b0", "authorizer_id" : "5b8cd3f06f004115aec69c58f57272c9", "function_urn" : "'urn:fss:region01:73d69ae0cfcf460190522d06b60f05ad:function:default:auto_testfunc93749'", "invocation_type" : "sync", "timeout" : 5000, "version" : "latest", "register_time" : "2020-08-02T15:36:19.897262803Z", "update_time" : "2020-08-02T15:36:19.897262993Z", "status" : 1 }, "cors" : false, "req_protocol" : "HTTPS", "req_uri" : "/test/function", "remark" : "function api", "type" : 1, "version" : "V0.0.1", "status" : 1, "req_method" : "GET", "result_normal_sample" : "normal result", "result_failure_sample" : "failure result", "tags" : [ "functionApi" ], "register_time" : "2020-08-02T15:36:19.892012381Z", "update_time" : "2020-08-02T15:36:19.892012627Z" } 示例 3 { "id" : "3a955b791bd24b1c9cd94c745f8d1aad", "arrange_necessary" : 2, "group_id" : "c77f5e81d9cb4424bf704ef2b0ac7600", "group_name" : "api_group_001", "group_version" : "V1", "match_mode" : "SWA", "name" : "Api_mock", "auth_type" : "IAM", "auth_opt" : { "auth_code_auth_type" : "DISABLE" }, "backend_type" : "MOCK", "mock_info" : { "id" : "e74bbc75825c4c38ae84ccab6bdc6175", "result_content" : "mock success", "update_time" : "2020-08-02T15:56:52.301790686Z", "register_time" : "2020-08-02T15:56:52.301790367Z" }, "policy_mocks" : [ { "name" : "mock api", "id" : "1cb05173a4c84b7d996e30145cce3c7d", "effect_mode" : "ANY", "result_content" : "mock policy success", "conditions" : [ { "condition_origin" : "source", "condition_value" : "1.0.1.0", "id" : "8650b3a94e7344df8251658d8aee1f6d" } ] } ], "cors" : false, "req_protocol" : "HTTPS", "req_uri" : "/test/mock", "remark" : "mock api", "type" : 1, "version" : "V0.0.1", "req_method" : "GET", "result_normal_sample" : "normal result", "result_failure_sample" : "failure result", "tags" : [ "mockApi" ], "register_time" : "2020-08-02T15:56:52.286099413Z", "update_time" : "2020-08-02T15:56:52.286099715Z", "status" : 1 } 状态码: 400 Bad Request { "error_code" : "APIG.2011", "error_msg" : "Invalid parameter value,parameterName:name. Please refer to the support documentation" } 状态码: 401 Unauthorized { "error_code" : "APIG.1002", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "APIG.1005", "error_msg" : "No permissions to request this method" } 状态码: 404 Not Found { "error_code" : "APIG.3019", "error_msg" : "The function URN does not exist" } 状态码: 500 Internal Server Error { "error_code" : "APIG.9999", "error_msg" : "System error" }
  • 获取域名 云服务平台内业务系统访问API的场景,需获取内网域名作为独立域名。 申请内网域名,具体请参考创建内网域名。 配置域名到“服务集成APIC 连接地址”的A类型记录集配置,具体请参考增加A类型记录集。 如果API分组中的API支持HTTPS请求协议,则需要为独立域名添加SSL证书。您需要提前获取SSL证书的内容和密钥,并创建SSL证书。 云服务平台外业务系统访问API的场景,需获取公网域名作为独立域名。 申请公网域名,具体可通过 域名注册服务 申请。 备案公网域名,您可以通过备案中心完成域名备案。备案时长需几个工作日,建议您提前进行备案。 配置域名到API分组子域名的CNAME类型记录集配置,具体请参考增加CNAME类型记录集。 如果API分组中的API支持HTTPS请求协议,则需要为独立域名添加SSL证书。您需要提前获取SSL证书的内容和密钥,并创建SSL证书。
  • 约束与限制 独立域名绑定端口时,同一域名不支持绑定相同端口。 同一域名不同端口,无论哪个端口绑定/修改/解绑SSL证书、开启/关闭客户端认证,所有端口都会同步生效。 如果您通过负载通道访问后端服务,那么独立域名绑定的端口需与负载通道中后端服务器的访问端口保持一致。 独立域名绑定端口后,如果您通过IP地址访问API,那么需要在请求消息中添加Header参数“host”,host值必须带有对应的访问协议的端口(默认的80/443端口,host值可以不带)。
  • 邀请其他企业用户 企业A的账号中创建项目后,可以向该项目中添加企业B的账号中的IAM用户。 前提条件请参照邀请其他企业用户为项目成员。 单击“添加成员”旁的下拉框,选择“邀请其他企业用户”。 弹出“邀请其他企业用户”对话框,在“企业用户”下拉列表框中选择被邀请用户所属的账号,选择邀请方式并输入对应ID,单击“确定”。 用户ID:被邀请用户的ID,通过“我的凭证 ”获取“IAM用户ID”。获取方式请参考API凭证。 委托ID:被邀请账号中已创建的委托ID,通过IAM服务中的“委托”页面获取。 单击“确定”,可以将其他企业用户添加到项目中。
  • 转换证书为PEM格式 格式类型 转换方式(通过OpenSSL工具进行转换) CER/CRT 将“cert.crt”证书文件直接重命名为“cert.pem”。 PFX 提取私钥命令,以“cert.pfx”转换为“key.pem”为例。 openssl pkcs12 -in cert.pfx -nocerts -out key.pem 提取证书命令,以“cert.pfx”转换为“cert.pem”为例。 openssl pkcs12 -in cert.pfx -nokeys -out cert.pem P7B 证书转换,以“cert.p7b”转换为“cert.cer”为例。 openssl pkcs7 -print_certs -in cert.p7b -out cert.cer 将“cert.cer”证书文件直接重命名为“cert.pem”。 DER 提取私钥命令,以“privatekey.der”转换为“privatekey.pem”为例。 openssl rsa -inform DER -outform PEM -in privatekey.der -out privatekey.pem 提取证书命令,以“cert.cer”转换为“cert.pem”为例。 openssl x509 -inform der -in cert.cer -out cert.pem
  • 请求示例 创建一个API,认证方式为自定义认证,匹配方式为绝对匹配,后端类型为Web后端,并自定义前端请求参数和后端请求参数 { "group_id" : "c77f5e81d9cb4424bf704ef2b0ac7600", "match_mode" : "NORMAL", "name" : "Api_http", "auth_type" : "AUTHORIZER", "authorizer_id" : "0d982c1ac3da493dae47627b6439fc5c", "backend_type" : "HTTP", "backend_api" : { "url_domain" : "10.10.10.156:12346", "req_protocol" : "HTTP", "req_method" : "GET", "req_uri" : "/test/benchmark", "timeout" : 5000 }, "req_protocol" : "HTTPS", "req_uri" : "/test/http", "remark" : "Web backend API", "type" : 1, "req_method" : "GET", "result_normal_sample" : "Normal response example", "result_failure_sample" : "Failure response example", "tags" : [ "webApi" ], "req_params" : [ { "name" : "query_demo", "location" : "QUERY", "type" : "STRING", "required" : 1 }, { "name" : "header-demo", "location" : "HEADER", "type" : "STRING", "required" : 2 } ], "backend_params" : [ { "name" : "backHeader", "value" : "header-demo", "location" : "HEADER", "origin" : "REQUEST" }, { "name" : "backQuery", "value" : "query_demo", "location" : "QUERY", "origin" : "REQUEST" }, { "name" : "X-CONSTANT-HEADER", "value" : "demo", "location" : "HEADER", "origin" : "CONSTANT", "remark" : "constant_demo" }, { "name" : "app-id", "value" : "$context.appId", "location" : "HEADER", "origin" : "SYSTEM", "remark" : "Application ID of the invoker." } ] } 创建一个API,认证方式为APP认证,匹配方式为绝对匹配,后端类型为函数工作流 { "group_id" : "c77f5e81d9cb4424bf704ef2b0ac7600", "match_mode" : "NORMAL", "name" : "Api_function", "auth_type" : "APP", "backend_type" : "FUNCTION", "func_info" : { "authorizer_id" : "5b8cd3f06f004115aec69c58f57272c9", "function_urn" : "'urn:fss:region01:73d69ae0cfcf460190522d06b60f05ad:function:default:auto_testfunc93749'", "network_type" : "V1", "invocation_type" : "sync", "timeout" : 5000, "version" : "latest", "alias_urn" : "urn:fss:region01:73d69ae0cfcf460190522d06b60f05ad:function:default:auto_testfunc93749:!a1" }, "req_protocol" : "HTTPS", "req_uri" : "/test/function", "remark" : "FunctionGraph backend API", "type" : 1, "req_method" : "GET", "result_normal_sample" : "Normal response example", "result_failure_sample" : "Failure response example", "tags" : [ "functionApi" ] } 创建一个API,认证方式为APP认证,匹配方式为前缀匹配,后端类型为MOCK后端 { "group_id" : "c77f5e81d9cb4424bf704ef2b0ac7600", "match_mode" : "SWA", "name" : "Api_mock", "auth_type" : "APP", "backend_type" : "MOCK", "mock_info" : { "result_content" : "mock success" }, "req_protocol" : "HTTPS", "req_uri" : "/test/mock", "remark" : "Mock backend API", "type" : 1, "req_method" : "GET", "result_normal_sample" : "Normal response example", "result_failure_sample" : "Failure response example", "tags" : [ "mockApi" ] }
  • 响应示例 状态码: 201 Created 示例 1 { "name" : "Api_http", "type" : 1, "version" : "V2", "req_protocol" : "HTTP", "req_method" : "GET", "req_uri" : "/test/http", "auth_type" : "APP", "auth_opt" : { "app_code_auth_type" : "DISABLE" }, "cors" : false, "match_mode" : "NORMAL", "backend_type" : "HTTP", "remark" : "Web backend API", "group_id" : "c77f5e81d9cb4424bf704ef2b0ac7600", "body_remark" : "", "result_normal_sample" : "Normal response example", "result_failure_sample" : "Failure response example", "authorizer_id" : "", "tags" : [ "webApi" ], "roma_app_id" : "957dcd1e-d8f4-432e-8e71-df55cf772aba", "domain_name" : "", "tag" : "", "id" : "5f918d104dc84480a75166ba99efff21", "status" : 1, "arrange_necessary" : 2, "register_time" : "2022-02-09T02:46:36.913996908Z", "update_time" : "2022-02-09T02:46:36.913997175Z", "group_name" : "api_group_001", "group_version" : "V2", "run_env_name" : "", "run_env_id" : "", "publish_id" : "", "roma_app_name" : "app-htyr", "ld_api_id" : "", "backend_api" : { "authorizer_id" : "", "url_domain" : "10.10.10.156:12346", "req_protocol" : "HTTP", "remark" : "", "req_method" : "GET", "version" : "", "req_uri" : "/test/bechmark", "timeout" : 5000, "enable_client_ssl" : false, "retry_count" : "-1", "id" : "86686e62cabe44b392ad4a0856165e92", "status" : 1, "register_time" : "2022-02-09T02:46:36.914978278Z", "update_time" : "2022-02-09T02:46:36.914978525Z", "vpc_channel_info" : { "cascade_flag" : false, "vpc_channel_id" : "", "vpc_channel_port" : 0 }, "vpc_channel_status" : 2 }, "api_group_info" : { "id" : "02b157a33b394babb0b08c010bc3d76b", "name" : "api_group", "status" : 1, "sl_domain" : "02b157a33b394babb0b08c010bc3d76b.apic.****.com", "register_time" : "2022-02-09T02:46:31Z", "update_time" : "2022-02-09T02:46:31Z", "on_sell_status" : 2, "url_domains" : [ { "id" : "e91b83b07744e8eb1872d695ed4743b", "domain" : "domain.com", "cname_status" : 3, "ssl_id" : "ddsa83b07744e8eb1872d695ed4743b", "ssl_name" : "certificate", "min_ssl_version" : "TLSv1.1" } ] }, "func_info" : null, "mock_info" : null, "req_params" : [ { "name" : "query_demo", "location" : "QUERY", "type" : "STRING", "valid_enable" : 2, "required" : 1, "id" : "57c8bf3c97ef40ee94eace95dff30014", "pass_through" : 1 }, { "name" : "header-demo", "location" : "HEADER", "type" : "STRING", "valid_enable" : 2, "required" : 2, "id" : "8d993be96980415faa6b1fb2ebd647e0", "pass_through" : 1 } ], "backend_params" : [ { "name" : "backHeader", "value" : "header-demo", "location" : "HEADER", "origin" : "REQUEST", "id" : "709f0ea376b44aaf907aaaa37d8cce92", "req_param_id" : "8d993be96980415faa6b1fb2ebd647e0" }, { "name" : "backQuery", "value" : "query_demo", "location" : "QUERY", "origin" : "REQUEST", "id" : "2f152d0fb54445039158d29c2a4f69ee", "req_param_id" : "57c8bf3c97ef40ee94eace95dff30014" }, { "name" : "X-CONSTANT-HEADER", "value" : "demo", "location" : "HEADER", "origin" : "CONSTANT", "remark" : "constant_demo", "id" : "20142102c6aa4f3c97d5fd6ef4010ac2" }, { "name" : "app-id", "value" : "$context.appId", "location" : "HEADER", "origin" : "SYSTEM", "remark" : "Application ID of the invoker.", "id" : "a1349c61016e4d999ca783a50bfeee2b" } ], "policy_functions" : null, "policy_mocks" : null, "policy_https" : [ ] } 示例 2 { "name" : "Api_function", "type" : 1, "version" : "V0.0.1", "req_protocol" : "HTTPS", "req_method" : "GET", "req_uri" : "/test/function", "auth_type" : "APP", "auth_opt" : { "auth_code_auth_type" : "DISABLE" }, "cors" : false, "match_mode" : "NORMAL", "backend_type" : "FUNCTION", "remark" : "FunctionGraph backend API", "group_id" : "c77f5e81d9cb4424bf704ef2b0ac7600", "body_remark" : "", "result_normal_sample" : "Normal response example", "result_failure_sample" : "Failure response example", "authorizer_id" : "", "tags" : [ "functionApi" ], "tag" : "", "roma_app_id" : "f77f5e81d9cb4424bf704ef2b0ac7690", "domain_name" : "www.sss.com", "id" : "abd9c4b2ff974888b0ba79be7e6b2763", "status" : 1, "arrange_necessary" : 2, "register_time" : "2020-08-02T15:56:52.286099413Z", "update_time" : "2020-08-02T15:56:52.286099715Z", "group_name" : "api_group_001", "group_version" : "V1", "run_env_name" : "", "run_env_id" : "", "publish_id" : "", "publish_time" : "", "roma_app_name" : "app-dfge", "ld_api_id" : "", "backend_api" : null, "api_group_info" : { "id" : "c77f5e81d9cb4424bf704ef2b0ac7600", "name" : "api_group", "status" : 1, "sl_domain" : "c77f5e81d9cb4424bf704ef2b0ac7600.apic.****.com", "register_time" : "2020-08-02T15:56:52Z", "update_time" : "2020-08-02T15:56:52Z", "on_sell_status" : 2, "url_domains" : [ { "id" : "e91b83b07744e8eb1872d695ed4743b", "domain" : "domain.com", "cname_status" : 3, "ssl_id" : "ddsa83b07744e8eb1872d695ed4743b", "ssl_name" : "certificate", "min_ssl_version" : "TLSv1.1" } ] }, "mock_info" : null, "func_info" : { "id" : "c0740524cd4c40e3801a7afe5375f8b0", "authorizer_id" : "5b8cd3f06f004115aec69c58f57272c9", "function_urn" : "'urn:fss:region01:73d69ae0cfcf460190522d06b60f05ad:function:default:auto_testfunc93749'", "network_type" : "V1", "remark" : "", "invocation_type" : "sync", "timeout" : 5000, "version" : "latest", "alias_urn" : "urn:fss:region01:73d69ae0cfcf460190522d06b60f05ad:function:default:auto_testfunc93749:!a1", "register_time" : "2020-08-02T15:36:19.897262803Z", "update_time" : "2020-08-02T15:36:19.897262993Z", "status" : 1 }, "req_params" : [ ], "backend_params" : [ ], "policy_functions" : null, "policy_mocks" : [ ], "policy_https" : null } 示例 3 { "name" : "Api_mock", "type" : 1, "version" : "V0.0.1", "req_protocol" : "HTTPS", "req_method" : "GET", "req_uri" : "/test/mock", "auth_type" : "APP", "auth_opt" : { "auth_code_auth_type" : "DISABLE" }, "cors" : false, "match_mode" : "SWA", "backend_type" : "MOCK", "remark" : "Mock backend API", "group_id" : "c77f5e81d9cb4424bf704ef2b0ac7600", "body_remark" : "", "result_normal_sample" : "Normal response example", "result_failure_sample" : "Failure response example", "authorizer_id" : "", "tags" : [ "mockApi" ], "tag" : "", "roma_app_id" : "f77f5e81d9cb4424bf704ef2b0ac7690", "domain_name" : "www.sss.com", "id" : "3a955b791bd24b1c9cd94c745f8d1aad", "status" : 1, "arrange_necessary" : 2, "register_time" : "2020-08-02T15:56:52.286099413Z", "update_time" : "2020-08-02T15:56:52.286099715Z", "group_name" : "api_group_001", "group_version" : "V1", "run_env_name" : "", "run_env_id" : "", "publish_id" : "", "publish_time" : "", "roma_app_name" : "app-dfge", "ld_api_id" : "", "backend_api" : null, "api_group_info" : { "id" : "c77f5e81d9cb4424bf704ef2b0ac7600", "name" : "api_group", "status" : 1, "sl_domain" : "c77f5e81d9cb4424bf704ef2b0ac7600.apic.****.com", "register_time" : "2020-08-02T15:56:52Z", "update_time" : "2020-08-02T15:56:52Z", "on_sell_status" : 2, "url_domains" : [ { "id" : "e91b83b07744e8eb1872d695ed4743b", "domain" : "domain.com", "cname_status" : 3, "ssl_id" : "ddsa83b07744e8eb1872d695ed4743b", "ssl_name" : "certificate", "min_ssl_version" : "TLSv1.1" } ] }, "mock_info" : { "remark" : "", "result_content" : "mock success", "version" : "m1", "authorizer_id" : "", "status_code" : 200, "header" : [ ], "id" : "e74bbc75825c4c38ae84ccab6bdc6175", "register_time" : "2020-08-02T15:56:52.301790367Z", "status" : 1, "update_time" : "2020-08-02T15:56:52.301790686Z" }, "func_info" : null, "req_params" : [ ], "backend_params" : [ ], "policy_functions" : null, "policy_mocks" : [ ], "policy_https" : null } 状态码: 400 Bad Request { "error_code" : "APIG.2011", "error_msg" : "Invalid parameter value,parameterName:name. Please refer to the support documentation" } 状态码: 401 Unauthorized { "error_code" : "APIG.1002", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "APIG.1005", "error_msg" : "No permissions to request this method" } 状态码: 404 Not Found { "error_code" : "APIG.3019", "error_msg" : "The function URN does not exist" } 状态码: 500 Internal Server Error { "error_code" : "APIG.9999", "error_msg" : "System error" }
  • 角色与操作权限说明 CodeArts API服务 各用户角色类型及对应的操作权限说明如下: 表1 通用设置默认角色权限说明 服务资源 权限 权限说明 项目管理员 项目经理 产品经理 测试经理 运维经理 系统工程师 Committer 开发人员 测试人员 参与者 浏览者 角色 权限设置 设置角色权限 Y Y N Y N N N N N N N 成员设置 设置项目成员 Y Y N Y N N N N N N N 项目 编辑 编辑项目信息 Y Y N Y Y N N Y Y N Y 表2 API测试默认角色权限说明 服务资源 权限 权限说明 项目管理员 项目经理 产品经理 测试经理 运维经理 系统工程师 Committer 开发人员 测试人员 参与者 浏览者 用例 创建 创建用例 Y Y Y Y N Y Y Y Y N N 查看 查看用例 Y Y Y Y Y Y Y Y Y Y Y 修改 修改用例 Y Y Y Y N Y Y Y Y N N 删除 删除用例 Y Y Y Y N Y Y Y Y N N 执行 执行用例 Y Y Y Y N Y Y Y Y N N 停止 停止用例 Y Y Y Y N Y Y Y Y N N 导出到文件 导出用例到文件 Y Y Y Y Y Y Y Y Y Y Y 从文件导入 从文件导入用例 Y Y Y Y N Y Y Y Y N N 从版本导入 从版本导入用例 Y Y Y Y N Y Y Y Y N N 合并到基线 合并到基线 Y Y N Y N Y Y N N N N 规范检查 规范检查 Y Y Y Y N Y Y Y Y N N 测试套 创建 创建测试套 Y Y Y Y N Y Y Y Y N N 查看 查看测试套 Y Y Y Y Y Y Y Y Y Y Y 修改 修改测试套 Y Y Y Y N Y Y Y Y N N 删除 删除测试套 Y Y Y Y N Y Y Y Y N N 执行 执行测试套 Y Y Y Y N Y Y Y Y N N 停止 停止测试套 Y Y Y Y N Y Y Y Y N N 测试版本 创建 创建测试版本 Y Y N Y N Y Y N N N N 查看 查看测试版本 Y Y Y Y Y Y Y Y Y Y Y 修改 修改测试版本 Y Y N Y N Y Y N N N N 删除 删除测试版本 Y Y N Y N Y Y N N N N 接口测试-关键字 创建 创建关键字 Y Y Y Y N Y Y Y Y N N 查看 查看关键字 Y Y Y Y Y Y Y Y Y Y Y 编辑 编辑关键字 Y Y Y Y N Y Y Y Y N N 删除 删除关键字 Y Y Y Y N Y Y Y Y N N 全局变量 创建 创建全局变量 Y Y Y Y N Y Y Y Y N N 查看 查看全局变量 Y Y Y Y Y Y Y Y Y Y Y 编辑 编辑全局变量 Y Y Y Y N Y Y Y Y N N 删除 删除全局变量 Y Y Y Y N Y Y Y Y N N 规则 创建 创建规则 Y Y Y Y N Y Y Y Y N N 查看 查看规则 Y Y Y Y Y Y Y Y Y Y Y 修改 修改规则 Y Y Y Y N Y Y Y Y N N 删除 删除规则 Y Y Y Y N Y Y Y Y N N 表3 项目资源默认角色权限说明 服务资源 权限 权限说明 项目管理员 项目经理 产品经理 测试经理 运维经理 系统工程师 Committer 开发人员 测试人员 参与者 浏览者 注册APIG 创建 注册API Y Y N N Y N N N N N N 查看 查看注册API Y Y Y Y Y Y Y Y Y Y Y 编辑 重新注册API Y Y N N Y N N N N N N 删除 删除注册API Y Y N N Y N N N N N N 版本控制 创建 版本管理页面新增版本按钮权限 Y Y N N N N N N N N N 查看 查看版本管理页面权限 Y Y Y Y Y Y Y Y Y Y Y 编辑 版本管理页面编辑按钮权限 Y Y N N N N N N N N N 删除 版本管理页面删除按钮权限 Y Y N N N N N N N N N 定时导入API 创建 创建定时导入任务 Y Y N N N N N N N N N 查看 查看定时导入任务 Y Y Y Y Y Y Y Y Y Y Y 编辑 编辑定时导入任务 Y Y N N N N N N N N N 删除 删除定时导入任务 Y Y N N N N N N N N N 执行 执行定时导入任务 Y Y N N N N N N N N N 父主题: 管理项目成员与角色权限
  • 响应示例 状态码: 200 OK { "total" : 3, "size" : 3, "apis" : [ { "arrange_necessary" : 2, "id" : "5f918d104dc84480a75166ba99efff21", "tags" : [ "webApi" ], "backend_type" : "HTTP", "auth_type" : "AUTHORIZER", "auth_opt" : { "app_code_auth_type" : "DISABLE" }, "authorizer_id" : "8d0443832a194eaa84244e0c1c1912ac", "cors" : false, "status" : 1, "group_name" : "api_group_001", "group_id" : "c77f5e81d9cb4424bf704ef2b0ac7600", "group_version" : "V1", "match_mode" : "NORMAL", "name" : "Api_http", "req_protocol" : "HTTPS", "req_method" : "GET", "req_uri" : "/test/http", "type" : 1, "version" : "V0.0.1", "register_time" : "2020-07-31T12:42:51Z", "update_time" : "2020-08-02T16:32:47.046289Z", "remark" : "web backend API" }, { "id" : "3a955b791bd24b1c9cd94c745f8d1aad", "group_id" : "c77f5e81d9cb4424bf704ef2b0ac7600", "group_name" : "api_group_001", "group_version" : "V1", "match_mode" : "SWA", "name" : "Api_mock", "auth_type" : "IAM", "auth_opt" : { "auth_code_auth_type" : "DISABLE" }, "backend_type" : "MOCK", "cors" : false, "req_protocol" : "HTTPS", "req_uri" : "/test/mock", "remark" : "mock api", "type" : 1, "version" : "V0.0.1", "req_method" : "GET", "result_normal_sample" : "normal result", "result_failure_sample" : "failure result", "tags" : [ "mockApi" ], "register_time" : "2020-08-02T15:56:52Z", "update_time" : "2020-08-02T15:56:52Z", "status" : 1 }, { "id" : "abd9c4b2ff974888b0ba79be7e6b2763", "arrange_necessary" : 2, "group_id" : "c77f5e81d9cb4424bf704ef2b0ac7600", "group_name" : "api_group_001", "group_version" : "V1", "match_mode" : "NORMAL", "name" : "Api_function", "auth_type" : "APP", "auth_opt" : { "auth_code_auth_type" : "DISABLE" }, "backend_type" : "FUNCTION", "cors" : false, "req_protocol" : "HTTPS", "req_uri" : "/test/function", "remark" : "function API", "type" : 1, "version" : "V0.0.1", "status" : 1, "req_method" : "GET", "tags" : [ "functionApi" ], "register_time" : "2020-08-02T15:36:19Z", "update_time" : "2020-08-02T15:47:53.499266Z" } ] } 状态码: 400 Bad Request { "error_code" : "APIG.2012", "error_msg" : "Invalid parameter value,parameterName:name. Please refer to the support documentation" } 状态码: 401 Unauthorized { "error_code" : "APIG.1002", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "APIG.1005", "error_msg" : "No permissions to request this method" } 状态码: 404 Not Found { "error_code" : "APIG.3030", "error_msg" : "The instance does not exist;id:f0fa1789-3b76-433b-a787-9892951c620ec" } 状态码: 500 Internal Server Error { "error_code" : "APIG.9999", "error_msg" : "System error" }
  • 响应示例 状态码: 200 OK { "total" : 1, "size" : 1, "apis" : [ { "name" : "Api_http", "type" : 1, "version" : "V0.0.1", "req_protocol" : "HTTPS", "req_method" : "GET", "req_uri" : "/test/http", "auth_type" : "AUTHORIZER", "auth_opt" : { "app_code_auth_type" : "DISABLE" }, "cors" : false, "match_mode" : "NORMAL", "backend_type" : "HTTP", "remark" : "Web backend API", "group_id" : "c77f5e81d9cb4424bf704ef2b0ac7600", "body_remark" : "", "result_normal_sample" : "", "result_failure_sample" : "", "authorizer_id" : "8d0443832a194eaa84244e0c1c1912ac", "tags" : [ "webApi" ], "roma_app_id" : "f37f5e81d9cb4424bf704ef2b0ac7600", "domain_name" : "", "id" : "5f918d104dc84480a75166ba99efff21", "status" : 1, "arrange_necessary" : 2, "register_time" : "2020-07-31T12:42:51Z", "update_time" : "2020-08-02T16:32:47.046289Z", "group_name" : "api_group_001", "group_version" : "V1", "run_env_name" : "RELEASE", "run_env_id" : "DEFAULT_ENVIRONMENT_RELEASE_ID", "publish_id" : "6f918d104dc84480a75166ba99efff41", "publish_time" : "2020-07-31 12:42:51", "roma_app_name" : "roma-3xfg", "ld_api_id" : "", "backend_api" : null, "api_group_info" : null, "req_params" : null } ] } 状态码: 400 Bad Request { "error_code" : "APIG.2012", "error_msg" : "Invalid parameter value,parameterName:name. Please refer to the support documentation" } 状态码: 401 Unauthorized { "error_code" : "APIG.1002", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "APIG.1005", "error_msg" : "No permissions to request this method" } 状态码: 404 Not Found { "error_code" : "APIG.3030", "error_msg" : "The instance does not exist;id:f0fa1789-3b76-433b-a787-9892951c620ec" } 状态码: 500 Internal Server Error { "error_code" : "APIG.9999", "error_msg" : "System error" }
  • 非简单请求 对于非简单请求,您需要开启跨域访问,并且创建一个“请求方法”为“OPTIONS”的API。 “请求方法”为“OPTIONS”的API和普通API的区别如下: 所属分组:选择已开启CORS的API所在的分组。 请求方法:选择“OPTIONS”。 请求协议:选择与已开启CORS的API相同的请求协议。 路径:填斜杠/即可,也可选择与已开启CORS的API相同或者匹配的请求Path。 安全认证:可选择“无认证”。无论选择哪种认证方式,API网关都按照无认证处理。 支持跨域CORS:选择开启CORS。 假设后端服务类型为Mock,示例如下: 浏览器发送“请求方法”为“OPTIONS”的API请求: OPTIONS /HTTP/1.1 User-Agent: curl/7.29.0 Host: localhost Accept: */* Origin: http://www.cors.com Access-Control-Request-Method: PUT Access-Control-Request-Headers: X-Sdk-Date Origin:此字段必选,表示请求消息所属源。 Access-Control-Request-Method:此字段必选,表示请求会使用哪些HTTP请求方法。 Access-Control-Request-Headers:此字段可选,表示请求会额外发送的头信息字段。 后端服务返回消息:无 API网关返回消息: HTTP/1.1 200 OK Date: Tue, 15 Jan 2019 02:38:48 GMT Content-Type: application/json Content-Length: 1036 Server: api-gateway X-Request-Id: c9b8926888c356d6a9581c5c10bb4d11 Access-Control-Allow-Origin: * Access-Control-Allow-Headers: X-Stage,X-Sdk-Date,X-Sdk-Nonce,X-Proxy-Signed-Headers,X-Sdk-Content-Sha256,X-Forwarded-For,Authorization,Content-Type,Accept,Accept-Ranges,Cache-Control,Range Access-Control-Expose-Headers: X-Request-Id,X-Apig-Latency,X-Apig-Upstream-Latency,X-Apig-RateLimit-Api,X-Apig-RateLimit-User,X-Apig-RateLimit-App,X-Apig-RateLimit-Ip,X-Apig-RateLimit-Api-Allenv Access-Control-Allow-Methods: GET,POST,PUT,DELETE,HEAD,OPTIONS,PATCH Access-Control-Max-Age: 172800 Access-Control-Allow-Origin:此字段必选,“*”表示API网关接受任意域的请求。 Access-Control-Allow-Headers:当请求消息中包含此字段时,此字段必选。表示允许跨域的所有请求头信息字段。 Access-Control-Expose-Headers:表示跨域访问允许查看的返回头信息字段。 Access-Control-Allow-Methods:此字段必选,表示API网关支持的所有HTTP请求方法。 Access-Control-Max-Age:此字段可选,表示本次预检的有效期,单位:秒。在有效期内,无需再次发出预检请求。 浏览器发送一个带Origin字段的请求头: PUT /simple HTTP/1.1 Host: www.test.com Origin: http://www.cors.com Content-Type: application/x-www-form-urlencoded; charset=utf-8 Accept: application/json Date: Tue, 15 Jan 2019 01:25:52 GMT 后端服务返回消息: HTTP/1.1 200 OK Date: Tue, 15 Jan 2019 01:25:52 GMT Content-Type: application/json Content-Length: 16 Server: api-gateway {"status":"200"} API网关返回消息: HTTP/1.1 200 OK Date: Tue, 15 Jan 2019 01:25:52 GMT Content-Type: application/json Content-Length: 16 Server: api-gateway X-Request-Id: 454d689fa69847610b3ca486458fb08b Access-Control-Allow-Origin: * {"status":"200"}