API 文档

控制台相关问题

最近更新时间:2020-09-10 17:26:05

根据后端 path 如何确定后端 URL?

如果客户进来的请求是 /release/apia/20171012/index.html,命中 path 为 /apia/ 的 API:

  • 如果后端 path 为空串,那么转给后端的 URL 就是 /apia/20171012/index.html
  • 如果后端 path 的内容不为空为 /endpoint/,那么就切掉 /apia/ 部分,剩下的黏在后端的 path 后面成为 /endpoint/20171012/index.html

API 命中优先级如何确定?

  • 如果 API path 以 = 开始,代表精确匹配,优先级最高。
  • 如果 API path 以 ^~ 开始,代表优先前缀匹配,后面不能跟正则表达式,优先级第二。
  • 如果 API path 为正则表达式(包括有路径变量),优先级第三。
  • 如果 API path 为普通串,字符串最长的优先级高,满足最长匹配。

API 网关支持 CORS 时如何配置?

在创建 API 时,若勾选了支持 CORS,则 API 网关支持跨域请求,默认配置如下:

#define CORS_DEFAULT_AC_ALLOW_ORIGIN  ("*")

#define CORS_DEFAULT_AC_ALLOW_METHODS  ("GET,POST,PUT,DELETE,HEAD,OPTIONS,PATCH")

#define CORS_DEFAULT_AC_ALLOW_CREDENTIALS  ("true")

#define CORS_DEFAULT_AC_ALLOW_HEADERS  ("X-Api-ID,X-Service-RateLimit,X-UsagePlan-RateLimit,X-UsagePlan-Quota,Cache-   Control,Connection,Content-Disposition,Date,Keep-Alive,Pragma,Via,Accept,Accept-Charset,Accept-Encoding,Accept-Language,Authorization,Cookie,Expect,From,Host,If-Match,If-Modified-Since,If-None-Match,If-Range,If-Unmodified-Since,Range,Origin,Referer,User-Agent,X-Forwarded-For,X-Forwarded-Host,X-Forwarded-Proto,Accept-Range,Age,Content-Range,Content-Security-Policy,ETag,Expires,Last-Modified,Location,Server,Set-Cookie,Trailer,Transfer-Encoding,Vary,Allow,Content-Encoding,Content-Language,Content-Length,Content-Location,Content-Type")

#define CORS_DEFAULT_AC_EXPOSE_HEADERS  (CORS_DEFAULT_AC_ALLOW_HEADERS)

#define CORS_DEFAULT_AC_MAX_AGE  ("86400")

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/用户路径

如何通过 API 网关上传文件?

按后端类型不同和文件大小不同可分为四种情况:

  • 如果是后端对接 SCF 的 API,上传 Base64 编码后小于 6MB 的文件,建议您通过客户端对文件进行 Base64 编码,将编码后的内容传递给 SCF,再由 SCF 进行 Base64 解码,以完成小文件的上传。
  • 如果是后端对接 SCF 的 API,上传 Base64 编码后大于等于 6MB 的文件,建议您通过客户端先将文件上传至 COS,将 Object 地址传递给 SCF,再由 SCF 从 COS 拉取文件,以完成大文件的上传。
  • 如果是后端对接其他服务的 API,上传小于 16MB 的文件,您只需要不填写参数,保持透传即可。
  • 如果是后端对接其他服务的 API,上传大于 16MB 的文件,建议您通过客户端先将文件上传至 COS,将 Object 地址传递给后端服务,再由后端服务从 COS 拉取文件,以完成大文件的上传。
目录