根据后端 path 如何确定后端 URL?
如果客户进来的请求是 /product/apigw/document
,命中 前端 path 为 /product/
的 API:
如果后端 path 为空串,那么转给后端的 URL 就是 /apigw/document
;
如果后端 path 的内容不为空为 /tencent/
,那么就切掉 /product/
部分,剩下的黏在后端的 path 后面成为 /tencent/apigw/document
。
API 命中优先级如何确定?
如果 API path 以 =
开始,代表精确匹配,优先级最高。
如果 API path 以 ^~
开始,代表优先前缀匹配,后面不能跟正则表达式,优先级第二。
如果 API path 为正则表达式(包括有路径变量),优先级第三。
如果 API path 为普通串,字符串最长的优先级高,满足最长匹配。
API 网关支持 CORS 时如何配置?
在创建 API 时,若勾选了支持 CORS,则 API 网关支持跨域请求,默认配置如下:
API 请求失败时如何处理?
用户在创建 API 服务后,经常发现调用失败,返回类似提示:
{"message":"There is no api match uri[\\/api\\/v1\\/tool\\/123\\/ico] host [service-asoj98o0-1251762227.ap-guangzhou.apigateway.myqcloud.com]"}
此时请先检查这个 API 服务是否已经发布在某个环境中。
创建 API 后,必须发布服务到环境中方可进行调用。API 在被编辑后也需要重新发布才能生效。
另外,当服务发布在不同环境中,默认调用地址中需要带环境名称,例如:
service-asoj98o0-1251762227.ap-guangzhou.apigateway.myqcloud.com/release/用户路径
对于使用 path 参数的 API,前后端参数如何映射?
如果前端配置包含固定串和 Path 参数,如前端路径为 /{PathA}/{PathB}/detail
,如果客户进来的请求是 /middleware/apigw/detail
,那么传给后端的 PathA 参数值为 middleware,PathB 参数值为 apigw。
如果前端配置包含固定串和 Path 参数,如前端路径为 /{PathA}/product/{PathB}
,如果客户进来的请求是 /middleware/product/apigw/detail
,那么传给后端的 PathA 参数值为 middleware,PathB 参数值为 apigw/detail。
如果前端配置仅使用 Path 参数,如前端路径为 /{PathA}/{PathB}
,如果客户进来的请求是 /middleware/apigw/detail
,那么传给后端的 PathA 参数值为 middleware/apigw,PathB 参数值为 detail。
说明:
对于微服务 API,不建议同时将 X-NameSpace-Code和X-MicroService-Name 定义为 Path 参数。如需同时定义为 Path 参数,请使用固定串分割,如/{X-NameSpace-Code}/{X-MicroService-Name}/service。
本页内容是否解决了您的问题?