背景
由于腾讯云产品业务调整,API 网关产品将做如下调整:2024年07月01日00:00,产品停止售卖,范围是新、老用户无法再购买或创建资源,包含实例、服务、资源包。新用户指从未创建过 API 网关资源的用户。老用户已在使用中的服务暂不受影响。API 停售公告详情查看:【重要】API 网关产品停止售卖公告。
2024年07月01日之前通过 API 网关已经创建的 API 服务可以继续选择“API网关”发布云市场 API 商品;2024年07月01日后新增 API 服务请使用云市场 API 网关创建 API 服务,并且发布商品时需要选择"云市场API网关”中的 API 服务。
基本介绍
腾讯云产品业务调整后,发布 API 商品时,API 的创建动作由从 API 网关侧转移到云市场侧,本文主要引导您完成云市场 API 网关服务的创建和调试。
操作流程
1. 登录 API网关服务,选择“新建服务”。
2. 创建 API 网关服务,在创建过程中,需要填写服务商后端服务地址、访问协议(如 HTTP 或 HTTPS)、端口等关键信息。这些信息将用于 API 网关与后端服务之间的通信。API 网关服务创建成功后,在未绑定商品前,可对该服务进行编辑、删除和新建路由的操作。
3. 创建 API 网关路由,单击对应网关操作栏的“新建路由”。在此网关服务基础上创建路由,当前一个 API 网关服务只能创建一个路由。在创建路由时,需要指定路由规则、请求方法(如 GET、POST 等)以及后端服务对应的具体路径。当外部请求到达 API 网关时,它会根据路由规则转发到相应的后端服务进行处理。创建后可在“API网关服务>路由管理”处单击ID名称查看路由详情。
4. 绑定 API 商品,在创建 API 商品的过程中,需要选择绑定之前创建的 API 网关服务,让 API 商品继承 API 网关服务的相关配置,包括路由规则、后端服务地址等在完成 API 商品的创建及发布后供外部用户调用。
配置参数
创建 API 网关服务
字段配置 | 说明 |
服务名称 | 在单个地域内,服务名称必须是唯一的,且长度不得超过50个字符。 |
所属地域 | 不同地域的对外接口地址会有所不同。例如,如果选择了广州地域,网关最终部署在广州,对应的域名将为:ap-guangzhou.cloudmarket-apigw.com,可以为用户访问提供更好的服务。 |
服务地址 | 后端服务域名或者 IP 地址。 |
服务端口 | 一般 http 默认端口为80,https 默认端口为443,也可以选择自定义的端口。 |
服务协议 | 选择使用 http 或 https 协议。请注意,当您选择 https 协议时,服务端口必须选择 https 配置的端口。 |
服务路径 | 必须以“/”开头。 |
超时时间 | 用户请求经过网关后,和后台连接持续时间,超过这个时间会自动连接,默认 3000ms,不超过 10s, |
重试次数 | 如果一次请求服务不通过,会进行 ≤重试次数 的请求,在网络条件不好的时候,建议重试次数较高。 |
API 鉴权参数 | 添加鉴权参数:单击网关操作栏的“API 鉴权参数”。 支持鉴权参数类型: Header:这个类型的参数会以 json 形式填写在 Header 中的 X-Auth-Config-Header 中。 Query:将配置好的查询参数添加到 url 中。 |
示例
假设服务商后端接口路径是:https://example.market.tencent.com/testadd,则各项值如下:
服务地址:example.market.tencent.com
服务端口:443
服务路径:/testadd
创建 API 网关路由
字段配置 | 说明 |
路由名称 | 在单地域内,路由名称必须是唯一的,不能与其他路由名称重复。路由名称长度需在50个字符以内。 |
请求方法 | 指对外进行 API 调用时所使用的 HTTP 方法,如 GET、POST、PUT 等。 |
请求路径 | 用户需要自定义一个对外暴露的路径,该路径将追加到对外请求地址的末尾。当请求转发到服务商后端服务时,此路径不会包含在内。例如,若请求路径设置为/index,对外请求域名为 example.market.tencent.com,则完整的对外请求路径将是 example.market.tencent.com/index。 |
参数配置( 参数配置用于生成接口文档供用户使用) | Query:查询参数将会拼接到 URL 路径的末尾,以问号(?)分隔。例如,若 URL 路径为/search,查询参数为keyword=test,则完整的请求 URL 将是/search?keyword=test; Body:请求体参数适用于需要发送大量数据的场景,支持配置 JSON 结构。该部分数据会填充到 http 请求的 body 消息体中; Header:头部参数将会设置到 HTTP 请求头中,用于传递额外信息或进行身份验证等操作。常见的头部参数包括 Content-Type、Authorization 等。 |
返回结构(用于生成接口文档供用户使用) | 支持 JSON/HTML/TEXT/BINARY/XML 形式 |
成功/成功响应示例(用于生成接口文档供用户使用) | 如果为 JSON 结构,自动检测结构类型。 |
错误码配置(用于生成接口文档供用户使用) | 服务商配置一些返回码和注释,生成文档后,供用户查看。 |
路由详情中可以查看访问地址。访问地址生成规则:http|https://{region}.cloudmarket-apigw.com/{service-id}/路由配置的请求路径。
API 网关调试
调试接口用来测试服务商服务是否成功接入到云市场 API 网关中,需进入到各路由详情页面进行调试。
注意:
不要在调试页面更改地址栏中后缀地址(实际可更改),否则会调试失败。
请求及返回
针对不同的服务商的配置,API 网关会添加值到 Header 中。
服务端
Key | Value |
X-TCloudMarket-Custom-AuthConfig | 服务商在 API 鉴权参数中 配置的值。例如:{"test_json":1233,"test_parmar":"testvalue"} |
X-TCloudMarket-Trace-Consumer | 标记此请求来源的用户的 ID。例如:MQarpkSIP2mpNbMZwIV5ng== |
Request-Id | 当用户发起请求时,可以在请求的头部(header)中添加一个名为 "request-id" 的字段来标记该请求。如果用户没有提供该字段,网关会自动生成一个 "request-id" 字段,用于记录和跟踪该请求。 |
X-TCloudMarket-Request-Info | 这次请求返回的是使用计划 ID、使用量和配额。例如:{"used":16994,"total":88888,"useplanid":"planId-0"}。 需要注意的是,使用量仅供参考。如果请求通过了网关鉴权,但服务端返回的状态码≥300,该请求将不会计入使用量中,使用量的(used)异步减少。 |
Authorization | 用户请求的鉴权参数,包含请求的 sid,请求时间:{"id": "AKIDXXX", "x-date": "Date:Mon, 19 Mar 2018 12:08:40 GMT"}' |
用户端
Key | Value |
Request-Id | 网关会将用户在请求头部填写的 "request-id" 字段返回给用户。如果用户没有填写该字段,网关会生成一个 "request-id" 并将其返回给用户端和服务端。 |
X-TCloudMarket-Request-Info | 返回这次请求的使用计划 ID,使用量和总和量,用户可以根据返回值判断当前使用计划的剩余量,例如:{"used":16994,"total":88888,"useplanid":"planId-0"} 需要注意的是,使用量仅供参考。如果请求通过了网关鉴权,但服务端返回的状态码≥300,该请求将不会计入使用量中,使用量的(used)异步减少。 |
网关错误返回
如果用户的请求在网关被拦截,http 返回 status≥300,返回错误的具体样式如下:
{
"requestid"
:
"1728995097970162775"
,
"message"
:
"签名校验信息不对"
}
常见的网关返回错误如下表:
status | message |
401 | 当前使用计划已经耗尽 |
402 | 签名信息未校验通过 |
403 | 签名时间超时,请重新生成签名 |
404 | 密钥已经失效 |
405 | 服务商已经停用该使用计划 |
411 | 鉴权信息未在 header 中找到 |
412 | 签名或者密钥格式不正确 |
413 | 签名日期格式不对 |
414 | 传递鉴权信息格式不对 |
420<code<430 | 这类错误为内部错误 |
500 | 内部错误 |
服务日志
日志查看
您可以单击对应网关操作栏中的"服务日志",来查看当前服务的最近访问日志。
日志下载
您可以按照以下步骤下载当前查询条件下的服务日志:
1. 单击对应网关操作栏中的"服务日志"。
2. 在服务日志页面,找到并单击下载图标。
3. 将触发下载操作,您能够下载当前查询条件下的日志。
注意:
最多只能下载1万条日志。
日志查询
1. 单击添加筛选条件,选择所需的筛选条件,
2. 单击查询图标,查看查询结果。
监控与告警
监控
当您单击对应网关操作栏的"监控与告警"时,您可以查看当前用户的所有服务实例的使用情况,包括服务实例和使用计划。
服务实例:您可以通过下拉框选择不同的服务实例,并查看该服务实例的请求数量。
使用计划:您可以查看已售出的所有订单对应的使用计划。
监控内容主要包含三个部分:
网关返回:这是指从用户发起请求后,在网关进行拦截后直接返回给用户的响应。
服务端返回:这是指经过网关转发到服务端后,最终返回给用户的响应。
所有请求:这包括用户发起的所有请求。例如,一个请求成功的响应必须经过网关和服务端。
告警