云服务器内容精选
-
响应示例 状态码: 201 Created { "auths" : [ { "api_id" : "5f918d104dc84480a75166ba99efff21", "auth_result" : { "status" : "SUC CES S" }, "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 表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 错误描述
-
请求参数 表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的编号列表,可以选择租户自己的API,也可以选择从云商店上购买的API。
-
概述 欢迎使用API网关(API Gateway),API网关为您提供高性能、高可用、高安全的API托管服务,帮助您轻松构建、管理和部署任意规模的API。 您可以使用本文档提供的API对API网关进行相关操作,如创建、删除、修改等。支持的全部操作请参见API概览。 在调用API网关的API前,请确保已经充分了解API网关相关概念,详细信息请参见产品介绍。 专享版开放V2版本的接口,共享版开放V1.0版本的接口。共享版已下线,建议用户使用新版(专享版)管理您的API。 父主题: 使用前必读
-
请求消息头 附加请求头字段,如指定的URI和HTTP方法所要求的字段。例如定义消息体类型的请求头“Content-Type”,请求鉴权信息等。 如下公共消息头需要添加到请求中。 Content-Type:消息体的类型(格式),必选,默认取值为“application/json”,有其他取值时会在具体接口中专门说明。 X-Auth-Token:用户Token,可选,当使用Token方式认证时,必须填充该字段。通过用户Token调用获取用户Token接口的响应Header参数。 API同时支持使用AK/SK认证,AK/SK认证是使用SDK对请求进行签名,签名过程会自动往请求中添加Authorization(签名认证信息)和X-Sdk-Date(请求发送的时间)请求头。 AK/SK认证的详细说明请参见AK/SK认证。 对于获取用户Token接口,由于不需要认证,所以只添加“Content-Type”即可,添加消息头后的请求如下所示。 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json
-
请求方法 HTTP请求方法(也称为操作或动词),它告诉服务你正在请求什么类型的操作。 GET:请求服务器返回指定资源。 PUT:请求服务器更新指定资源。 POST:请求服务器新增资源或执行特殊操作。 DELETE:请求服务器删除指定资源,如删除对象等。 HEAD:请求服务器资源头部。 PATCH:请求服务器更新资源的部分内容。当资源不存在的时候,PATCH可能会去创建一个新的资源。 在创建API分组的URI部分,您可以看到其请求方法为“POST”,则其请求为: POST https://apig.cn-north-1.myhuaweicloud.com/v2/{project_id}/apigw/instances/{instance_id}/api-groups
-
请求消息体 请求消息体通常以结构化格式发出,与请求消息头中Content-type对应,传递除请求消息头之外的内容。如果请求消息体中参数支持中文,那么中文字符必须为UTF-8编码。 每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消息体为空),GET、DELETE操作类型的接口不需要消息体,消息体具体内容需要根据具体接口而定。 对于创建API分组接口,您可以从接口的请求部分看到所需的请求参数及参数说明。将消息体加入后的请求如下所示,加粗的斜体字段需要根据实际值填写,其中name为API分组的名称,remark为API分组描述。 POST https://apig.cn-north-1.myhuaweicloud.com/v2/{project_id}/apigw/instances/{instance_id}/api-groups Content-Type: application/json X-Auth-Token: xxxx { "name": "APIGroup_test", "remark": "api group remark" } 到这里为止这个请求需要的内容就具备齐全了,您可以使用curl、Postman或直接编写代码等方式发送请求调用API。
-
请求URI 请求URI由如下部分组成。 {URI-scheme} :// {Endpoint} / {resource-path} ? {query-string} 尽管请求URI包含在请求消息头中,但大多数语言或框架都要求您从请求消息中单独传递它,所以在此单独强调。 表1 URI中的参数说明 参数 描述 URI-scheme 表示用于传输请求的协议,当前所有API均采用HTTPS协议。 Endpoint 指定承载REST服务端点的服务器 域名 或IP,不同服务不同区域的Endpoint不同,您可以从终端节点中获取。 例如APIG服务在“华北-北京一”区域的Endpoint为“apig.cn-north-1.myhuaweicloud.com”。 resource-path 资源路径,也即API访问路径。从具体API的URI模块获取,例如“创建API分组(专享版API)”API的resource-path为“/v2/{project_id}/apigw/instances/{instance_id}/api-groups”,project_id为项目ID,instance_id为实例ID(在APIG控制台的“实例信息”中查看)。 query-string 查询参数,是可选部分,并不是每个API都有查询参数。查询参数前面需要带一个“?”,形式为“参数名=参数取值”,例如“limit=10”,表示查询最多10条数据。多个查询参数之间使用“&”隔开。 例如您需要在“华北-北京一”区域创建API分组,将URI中的参数拼接起来即可。 https://apig.cn-north-1.myhuaweicloud.com/v2/{project_id}/apigw/instances/{instance_id}/api-groups 为查看方便,在每个具体API的URI部分,只给出resource-path部分,并将请求方法写在一起。这是因为URI-scheme都是HTTPS,同一个服务的Endpoint在同一个区域也相同,所以简洁起见将这两部分省略。
-
响应消息体 响应消息体通常以结构化格式返回,与响应消息头中Content-type对应,传递除响应消息头之外的内容。 对于创建API分组接口,返回如下消息体。为篇幅起见,这里只展示部分内容。 { "id": "41e08fbaca9f4d64bde467d0dd89ff51", "name": "aaa", "status": 1, "sl_domain": "41e08fbaca9f4d64bde467d0dd89ff51.example.cloudapis.com", "register_time": "2024-05-23T08:03:56.419897855Z", "update_time": "2024-05-23T08:03:56.419897962Z", "on_sell_status": 2, "url_domains": [], "sl_domain_access_enabled": true, "sl_domains": [ "41e08fbaca9f4d64bde467d0dd89ff51.example.cloudapis.com" ], "remark": "", "call_limits": 0, "time_interval": 0, "time_unit": "", "is_default": 2, "version": "", } 当接口调用出错时,会返回错误码及错误信息说明,错误响应的Body体格式如下所示。 { "error_msg": "The token is missing.", "error_code": "APIG.1000" } 其中,error_code表示错误码,error_msg表示错误描述信息。
-
Token认证 Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。 Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得操作API的权限。 在构造请求中以调用创建API分组(专享版API)接口为例说明了如何调用API。 获取Token 后,再调用其他接口时,您需要在请求消息头中添加“X-Auth-Token”,其值即为Token。例如Token值为“ABCDEFJ....”,则调用接口时将“X-Auth-Token: ABCDEFJ....”加到请求消息头即可,如下所示。 POST https://apig.cn-north-1.myhuaweicloud.com/v2/{project_id}/apigw/instances/{instance_id}/api-groups Content-Type: application/json X-Auth-Token: ABCDEFJ....
-
AK/SK认证 AK/SK签名认证方式仅支持消息体大小12MB以内,12MB以上的请求请使用Token认证。 通过AK/SK获取的Token有效期最短为15分钟。 AK/SK认证就是使用AK/SK对请求进行签名,在请求时将签名信息添加到消息头,从而通过身份认证。 AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。 SK(Secret Access Key):与访问密钥ID结合使用的密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。 使用AK/SK认证时,您可以基于签名算法使用AK/SK对请求进行签名,也可以使用专门的签名SDK对请求进行签名。详细的签名方法和SDK使用方法请参见API签名指南。 签名SDK只提供签名功能,与服务提供的SDK不同,使用时请注意。 客户端必须注意本地时间与时钟服务器的同步,避免请求消息头X-Sdk-Date的值出现较大误差。 API网关除了校验时间格式外,还会校验该时间值与网关收到请求的时间差,如果时间差大于15分钟,API网关将拒绝请求。
-
专享版API概览 API网关专享版接口的分类与说明如表1所示。 表1 专享版API概览 类型 说明 API分组管理 包括API分组的创建、修改、删除、查询详情和列表等接口。 环境管理 包括环境的创建、修改、删除和查询列表等接口。 环境变量管理 包括环境变量的新建、修改、删除、查询详情和列表等接口。 流控策略管理 包括流控策略的创建、修改、删除、查看详情和列表等接口。 API管理 包括API的创建、修改、删除、发布或下线、查询、调试、切换版本、校验API定义等接口。 签名密钥管理 包括签名密钥的创建、修改、删除和查询等接口。 签名密钥绑定关系管理 包括签名密钥的绑定、解绑、查询API绑定的密钥列表、查看密钥绑定/未绑定的API列表。 API绑定流控策略 包括绑定、解绑、批量解绑API与流控策略的关系,查看流程策略绑定/未绑定的API列表,查看API绑定的流控策略列表。 设置特殊流控 包括创建、修改、删除特殊流控策略,查看特殊设置列表。 APP授权管理 包括APP授权、解除授权,查看APP已绑定/未绑定的API列表,查看API已绑定的APP列表。 概要查询 包括查询API概况、API分组概况、APP概况。 域名管理 包括域名的绑定、修改、解绑。域名证书的绑定、删除、查看。 ACL策略管理 包括ACL策略的创建、修改、删除、批量删除,查看ACL策略详情、查询ACL策略列表。 API绑定ACL策略 包括将API与ACL策略绑定、解绑、批量解绑,查看ACL策略绑定/未绑定的API列表,查看API绑定的ACL策略列表。 自定义认证管理 包括自定义认证的创建、修改、删除,查看自定义认证详情,查询自定义认证列表。 OpenAPI接口 包括API的导出、导入。 VPC通道管理 包括: VPC通道的创建、更新、删除、查看,查询VPC通道列表。 后端实例的添加、查看、删除。 后端服务器状态的批量修改。 VPC通过健康检查的修改。 后端服务器组的添加、更新、删除、查看,查询VPC通道后端服务器组列表。 监控信息查询 包括查询最近一段时间的API统计信息,查询最近一小时内的分组统计信息。 分组自定义响应管理 包括分组自定义响应的创建、查询、修改、删除,查询分组自定义响应列表,查看、修改分组下指定错误类型的自定义响应,删除分组指定错误类型的自定义响应配置。 标签管理 包括标签列表的查询。 实例特性管理 包括实例特性的配置,查看实例特性列表。 配置管理 包括查看某实例的租户配置列表,查询租户实例配置列表。 实例管理 包括: 实例的创建、更新、查看、删除,查看实例创建进度,查询实例列表。 EIP的绑定、解绑。 实例公网出口的开启、关闭,更新实例公网出口带宽。 查看可用区信息。 实例的规格变更。 查看实例约束信息。 实例终端节点管理 包括: 查询实例终端节点连接列表。 查询实例终端节点服务的白名单列表。 接受/拒绝终端节点连接。 批量添加/删除实例终端节点白名单。 实例标签管理 包括实例标签的添加、删除和查询。 微服务中心管理 包括导入微服务。 SSL证书管理 包括: 证书的创建、删除、修改、查看,获取SSL证书列表。 域名绑定/解绑SSL证书。 SSL证书绑定/解绑域名 获取SSL证书已绑定的域名列表。 插件管理 包括: 插件的创建、修改、删除、查看,查询插件列表。 插件绑定/解绑API。 API绑定/解绑插件。 查询插件/API下绑定的API/插件。 查询可绑定当前插件的API,查询可绑定当前API的插件。 APP管理 包括: APP的创建、修改、删除、校验,重置密钥,查看APP详情、查询APP列表。 APP Code的创建、自动生成、删除,查看APP Code详情、查询APP Code列表。 查询凭据关联的凭据配额。 设置/删除APP的访问控制,查看APP的访问控制详情。 凭据配额管理 包括: 凭据配额的创建、修改、删除。 获取凭据配额详情和凭据配额列表。 凭据配额绑定/解绑凭据列表 。 查询凭据配额已绑定的凭据和未绑定的凭据。 异步任务管理 包括: API的异步导入/导出。 获取异步任务结果。 父主题: API概览
-
应用场景 gRPC是RPC(远程过程调用)的一种,只需定义每个API的Request和Response,剩下的gRPC框架就可以完成。它的典型特征就是使用protobuf(protocol buffers)作为其接口定义语言(Interface Definition Language,缩写IDL),同时底层的消息交换格式也是使用protobuf。 当用户使用gRPC服务时,可以通过API网关创建API,实现gRPC服务的路由转发。
-
设置错误响应 调用API如果输入错误的认证信息,则返回结果如下: 1 {"error_msg":"Incorrect authentication information: frontend authorizer","error_code":"APIG.0305","request_id":"36e42b3019077c2b720b6fc847733ce9"} 为了让API响应结果为函数中返回的context中的字段(如果您使用的是专享版网关,并且实例支持authorizer_context_support_num_bool特性,那么context中的value的类型可以为boolean类型或number类型),需要修改网关响应模板。在API所在的分组中,“分组信息”页签下的“网关响应”区域,编辑自定义认证失败的响应详情,将响应状态码改为401,将消息模板改为(引用变量为boolean类型或number类型时,变量不需要加双引号): 1 {"code":"$context.authorizer.frontend.code","message":"$context.authorizer.frontend.message", "authorizer_success": "$context.authorizer.frontend.authorizer_success"} 2 修改之后,调用API传入错误的认证信息,返回状态码为401,返回结果如下: 1 {"code":"1001","message":"incorrect username or password","authorizer_success": "false"}
-
编写自定义认证函数 在 函数工作流 的控制台编写函数,自定义认证的代码编写指南参见创建用于前端自定义认证的函数。 在函数工作流页面创建一个函数,语言选Python 3.6。 表1 函数信息配置 参数 配置说明 函数类型 默认“事件函数”。 区域 与API网关相同区域。 函数名称 根据规划自定义名称。建议您按照一定的命名规则填写名称,方便您快速识别和查找。 委托名称 用户委托函数工作流去访问其他的云服务。此处选择“未使用任何委托”。 企业项目 默认“default”。 运行时 选择Python 3.6。 在“代码”页签,将以下代码复制到index.py中(如果您使用的是专享版网关,并且实例支持authorizer_context_support_num_bool特性,那么context中的value的类型可以为boolean类型或number类型)。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 # -*- coding:utf-8 -*- import json def handler(event, context): #以下表示认证信息匹配正确,则返回用户名, if event["headers"]["authorization"]=='Basic dXN****cmQ=': return { 'statusCode': 200, 'body': json.dumps({ "status":"allow", "context":{ "user_name":"user1" } }) } else: return { 'statusCode': 200, 'body': json.dumps({ "status":"deny", "context":{ "code": "1001", "message":"incorrect username or password", "authorizer_success": "false" } }) }
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格