帮你捋顺 API 网关的 API、SDK和错误排查
API 网关的特殊之处
用户使用 API 网关开放 API 服务,或者调用其他人开放的 API 服务。而且 API 网关自身也开放了管理接口 API。所以用户使用时需要弄清楚两套 API、两套 SDK、两套错误码。这里把这些资源整理一下,方便大家正确使用和问题排查。
开发资源List
APIs
- 用户在 API 网关开放的 API 服务,如天气查询 API等
- API 网关开放的管理接口,用于使用产品,如创建 API等
SDKs
- API 网关为天气查询等用户开放的 API 服务提供的 SDK 样例
- API 网关为自身管理接口提供的 SDK
错误码
- 用户请求其他用户开放的 API 时产生的报错,如未授权、被流控、购买次数已用完等
- 用户请求 API 网关管理接口时产生的报错,如AccessKeyId错误、时间戳格式不对等
请求用户开放的 API 服务接口
场景一般为用户开放 API 进行自测,或者用户要使用其他用户开放的 API 服务。如天气查询 API、人脸识别 API等。
目前对此类 API 请求的 SDK 支持有6种语言的 SDK 示例和2种移动端语言的 SDK。可以在 API 网关控制台 SDK下载页面获取。位置如图:
页面同时给出了两种移动端 SDK 的使用手册。
请求 API 获得返回结果时要注意获取一下返回结果的 Header 部分,有时候可能需要抓一下包,很多用户打印出的返回结果都只是 Body 部分。如果请求没有成功,关键的错误信息就在返回结果的 Header 里,其中 X-Ca开头的字段为 API 网关返回的信息。
X-Ca-Request-Id 为请求唯一 ID,用户可以提供这个信息给客服/技术支持人员,方便搜索日志。建议用户后端也记录一下这个值,便于联调排查。X-Ca-Error-Message 为具体错误信息,如Quota Exhausted、Invalid Url、Invalid Signature等,基本看错误码可以知道错误原因,若不确定,可千万错误码表查询。针对出现率较高的错误,API 网关还提供了详细的排查说明,点此查看。请关注 API 网关的帮助文档中心。
请求 API 网关开放的管理接口 API
用户使用 API 接口代替控制台的操作,接口均为管理类接口,如CreateApiGroup、CreateApi等,详见 API 概览表。
目前 API 网关为这些 API 提供了 Java 语言的 SDK,与其他产品的 SDK 是统一规范,请在官网 Java SDK 页面获取。
API 请求失败返回的错误信息在 Body 里,有errorcode和errormessage两个字段。errorcode为错误说明短语,errormessage为一段详细描述及建议。此类错误同样可以在错误码表查询。