更新时间:2023-01-05 GMT+08:00
分享

配置网关响应

网关响应指ROMA API未能成功处理API请求,从而产生的错误响应。ROMA API提供默认的网关响应(default),如果您需要自定义响应状态码或网关响应内容,可在API服务管理中新增网关响应,其中响应内容符合JSON格式即可。

例如,“default”网关的响应内容为:

{"error_code": "$context.error.code", "error_msg": "$context.error.message", "request_id": "$context.requestId"}

您可以自定义为:

{"errorcode": "$context.error.code", "errormsg": "$context.error.message", "requestid": "$context.requestId","apiId":"$context.apiId"}

JSON体的内容可以按需定制,包括增减字段内容。

操作步骤

  1. 登录ROMA API控制台。
  2. 在控制台单击,选择区域,在“ROMA API”下选择待操作的应用。
  3. 在左侧导航栏选择“API管理 > API服务”。
  4. 在当前应用关联的实例中,根据实际业务选择实例。
  5. 在页面上单击服务名称,进入API服务详情页面。
  6. 在“网关响应”区域,即可新增或编辑网关响应。

    • 如果修改完默认网关响应后,需要恢复默认配置,单击“恢复默认配置”即可。
    • 不论“default(默认)”或是您自定义的网关响应,响应类型范围固定不可修改。您可以修改每种响应的状态码,以及响应内容。
    • 响应内容的错误信息以及其他信息,可通过变量的方式获取,支持的变量见表2

网关错误响应类型说明

ROMA API提供的错误响应类型见表1,其中响应状态码可以按实际需要做自定义修改。

表1 ROMA API的错误响应类型

错误响应类型

默认的响应状态码

错误说明

详细说明

ACCESS_DENIED

403

拒绝访问

拒绝访问,如触发配置的访问控制策略、或异常攻击检测拦截

AUTHORIZER_CONF_FAILURE

500

自定义认证配置错误

自定义认证方异常,通信失败、返回异常响应等错误

AUTHORIZER_FAILURE

500

自定义认证失败

自定义认证方返回认证失败

AUTHORIZER_IDENTITIES_FAILURE

401

自定义认证身份来源错误

前端自定义认证的身份来源信息缺失或不合法错误

AUTH_FAILURE

401

认证失败

认证失败,IAM或APP认证校验失败

AUTH_HEADER_MISSING

401

认证身份来源缺失

认证身份来源信息缺失

BACKEND_TIMEOUT

504

后端超时

后端超时,与后端的网络交互超过预配置的时间错误

BACKEND_UNAVAILABLE

502

后端不可用

后端不可用,网络不可达错误

DEFAULT_4XX

-

默认4XX

其它4XX类错误

DEFAULT_5XX

-

默认5XX

其它5XX类错误

NOT_FOUND

404

未找到匹配的API

未匹配到API

REQUEST_PARAMETERS_FAILURE

400

请求参数错误

请求参数校验失败、不支持的HTTP方法

THROTTLED

429

调用次数超出阈值

API调用次数超出所配置的流量策略阈值

UNAUTHORIZED

401

应用未授权

使用的应用未被授权访问该API

API运行时可获取变量

表2 网关错误响应消息体支持的变量

运行时变量名称

描述

$context.apiId

API的ID

$context.appId

API消费者的APP对象ID

$context.requestId

当次API调用生成请求ID

$context.stage

API调用的部署环境

$context.sourceIp

API消费者的源地址

$context.authorizer.frontend.property

前端自定义认证响应的context映射的指定键值对的字符串值

$context.authorizer.backend.property

后端自定义认证响应的context映射的指定键值对的字符串值

$context.error.message

当前网关错误响应的错误信息

$context.error.code

当前网关错误响应的错误码

$context.error.type

当前网关错误响应的错误类型

相关文档