更新时间:2023-12-13 GMT+08:00

APP授权

功能介绍

APP创建成功后,还不能访问API,如果想要访问某个环境上的API,需要将该API在该环境上授权给APP。授权成功后,APP即可访问该环境上的这个API。

调用方法

请参见如何调用API

URI

POST /v2/{project_id}/apigw/instances/{instance_id}/app-auths

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID,获取方式请参见获取项目ID

instance_id

String

实例ID,在API网关控制台的“实例信息”中获取。

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。

表3 请求Body参数

参数

是否必选

参数类型

描述

env_id

String

需要授权的环境编号

app_ids

Array of strings

APP的编号列表

api_ids

Array of strings

API的编号列表。

响应参数

状态码: 201

表4 响应Body参数

参数

参数类型

描述

auths

Array of ApiAuthRelations objects

API与APP的授权关系列表

表5 ApiAuthRelations

参数

参数类型

描述

api_id

String

API编号

auth_result

AuthResult object

授权结果

auth_time

String

授权时间

id

String

授权关系编号

app_id

String

APP编号

auth_role

String

授权者

  • PROVIDER:API提供者授权

  • CONSUMER:API消费者授权

枚举值:

  • PROVIDER

  • CONSUMER

auth_tunnel

String

授权通道类型

  • NORMAL:普通通道

  • GREEN:绿色通道

暂不支持,默认NORMAL

枚举值:

  • NORMAL

  • GREEN

auth_whitelist

Array of strings

绿色通道的白名单配置

auth_blacklist

Array of strings

绿色通道的黑名单配置

visit_params

String

访问参数。

表6 AuthResult

参数

参数类型

描述

status

String

授权结果

  • SUCCESS:授权成功

  • SKIPPED:跳过

  • FAILED:授权失败

枚举值:

  • SUCCESS

  • SKIPPED

  • FAILED

error_msg

String

授权失败错误信息

error_code

String

授权失败错误码

api_name

String

授权失败的API名称

app_name

String

授权失败的APP名称

状态码: 400

表7 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 401

表8 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 403

表9 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 404

表10 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 500

表11 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

请求示例

APP授权,将APP与API关联

{
  "env_id" : "DEFAULT_ENVIRONMENT_RELEASE_ID",
  "app_ids" : [ "356de8eb7a8742168586e5daf5339965" ],
  "api_ids" : [ "5f918d104dc84480a75166ba99efff21" ]
}

响应示例

状态码: 201

Created

{
  "auths" : [ {
    "api_id" : "5f918d104dc84480a75166ba99efff21",
    "auth_result" : {
      "status" : "SUCCESS"
    },
    "auth_time" : "22020-08-04T04:02:22.482227344Z",
    "id" : "dd29b33ae4394e3b924b582c6b40880b",
    "app_id" : "356de8eb7a8742168586e5daf5339965",
    "auth_role" : "PROVIDER",
    "auth_tunnel" : "NORMAL"
  } ]
}

状态码: 400

Bad Request

{
  "error_code" : "APIG.2011",
  "error_msg" : "Invalid parameter value,parameterName:api_ids. Please refer to the support documentation"
}

状态码: 401

Unauthorized

{
  "error_code" : "APIG.1002",
  "error_msg" : "Incorrect token or token resolution failed"
}

状态码: 403

Forbidden

{
  "error_code" : "APIG.1005",
  "error_msg" : "No permissions to request this method"
}

状态码: 404

Not Found

{
  "error_code" : "APIG.3004",
  "error_msg" : "App 356de8eb7a8742168586e5daf5339965 does not exist"
}

状态码: 500

Internal Server Error

{
  "error_code" : "APIG.9999",
  "error_msg" : "System error"
}

状态码

状态码

描述

201

Created

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

500

Internal Server Error

错误码

请参见错误码