API网关

API网关

API网关是为企业开发者及合作伙伴提供API托管服务,即封装系统内部架构,为客户端提供定制的API。支持API全生命周期管理(开发、调试、发布等)、认证鉴权、访问控制、监控等能力。

将短视频业务系统以API的形式托管到API网关后:

1、对托管的API进行分组,统一设置分组的访问域名,无需在客户端添加每个服务的域名。

2、统一设置API的鉴权方式、限流策略、服务权限等,无需对每个服务进行设置。

3、将客户端和服务端分离,客户端通过API网关服务服务端,无论后端如何变化或是拆分成多个服务,客户端无需配合改造。

API网关基本概念

API

API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,应用将自身的服务能力封装成API,并通过API网关开放给用户调用。

API包括基本信息、前后端的请求路径和参数以及请求相关协议。

API分组

API分组是同一种业务API的集合,API开发者以API分组为单位,管理分组内的所有API。

环境

为了方便管理API的生命周期,API网关定义了API受限使用范围,这个受限使用的范围,称为环境,例如API的测试环境,开发环境等。

环境定义了API生命周期管理过程中的不同状态,API可以被发布到不同的自定义环境中。

调用不同环境的API,一般通过在API调用的请求头增加指定的头部参数,头部参数名固定为x-stage,它的取值叫环境名,用以区分不同的环境。

环境变量

在环境上创建可管理的一种变量,该变量固定在环境上。通过创建环境变量,实现同一个API,在不同环境中调用不同的后端服务。

流量控制

流量控制支持从用户、应用(凭据)、源IP和时间段等不同的维度限制对API的调用次数,保护后端服务。

API网关支持按分/按秒粒度级别的流量控制。

访问控制

访问控制策略是API网关提供的API安全防护组件之一,主要用来控制访问API的IP地址和帐户,您可以通过设置IP地址或帐户的黑白名单来允许/拒绝某个IP地址或帐户访问API。

应用(凭据)

应用(APP)定义了一个API调用者的身份。可以将一个API授权给多个应用,也可以将多个API授权给同一个应用。

签名密钥

签名密钥由一对Key和Secret组成,用于后端服务验证API网关的身份,在API网关请求后端服务时,保障后端服务的安全。

当签名密钥绑定API后,API网关向后端服务发送此API的请求时,会增加相应的签名信息,此时后端服务依照同样方式进行签名并得到签名结果,如果和API网关传过来的Authorization头中签名一致,则可证明API请求确实来自API网关,而不是其他伪造请求。

VPC通道(负载通道)

API网关通过VPC通道访问部署在VPC内的服务,您可以借助API网关将部署在VPC中的后端服务开放给第三方用户调用。

自定义认证

自定义认证指在API调用过程中,用户可自行定义认证规则,实现API网关对调用方发起的请求、后端服务对API网关转发的请求进行有效性以及完整性校验。

自定义认证包含以下两种认证:

前端自定义认证:如果您希望使用自己的认证系统,而不是APP认证/华为IAM认证对API的访问进行认证鉴权时,您可以使用自定义认证,通过您自定义的函数进行认证鉴权。

后端自定义认证:当不同的后端服务使用不同的认证系统时,导致您需要为不同的认证系统定制化开发API,而APIG通过自定义认证功能,将多种认证系统集成,简化API开发的复杂度。您只需要在APIG中创建自定义的函数认证,APIG通过此函数对接后端认证系统,获取后端服务的访问授权。

简易认证

简易认证指调用API时,在HTTP请求头部消息增加一个参数X-Apig-AppCode(参数值填AppCode),而不需要对请求内容签名,API网关也仅校验AppCode,不校验请求签名,从而实现快速响应。

网关响应

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

API网关常见问题

API网关常见问题

  • API网关可以绑定内网域名吗?

    对于共享版,域名必须完成备案,并将其CNAME解析到API分组对应的子域名。不能将无法在公网访问的域名,或者将他人所有的域名绑定给API分组。

    对于专享版,可以配置内网域名,并将A记录解析到实例的入口地址。


  • 独立域名申请后还需要做什么?

    独立域名完成注册、备案后,对于共享版,您需要将其CNAME解析到API分组对应的子域名;对于专享版,您需要将其A记录解析到实例的入口地址。解析成功后,即可使用。域名与API分组为多对一的关系,即一个分组最多能绑定5个独立域名,但一个域名只能解析到1个分组。

    说明:若您使用的公网域名,需要在DNS服务公网解析内注册CNAME记录(共享版)/A记录(专享版)。

    若您使用的内网域名,需要在DNS服务内网解析内注册CNAME记录(共享版)/A记录(专享版),还需要关联后端服务所属的VPC。


  • API调用是否支持长连接

    API网关支持长连接,但注意适当使用,避免占用太多资源。


  • API调用对请求的响应消息体限制

    API调用对请求的响应消息体大小没有限制。


  • 策略后端有多个时,怎么匹配和执行

    当您的API配置了多个策略后端,API网关会按顺序进行匹配,匹配到其中一个立即执行API请求转发,不会进行后续的匹配。

    当策略后端都没有匹配成功,则按照默认后端执行API请求的转发。


API网关相关视频

API网关

05:43

API网关

API网关

02:11

API网关

1对1咨询专属顾问

1对1免费咨询华为云专属顾问,为您量身定制产品推荐方案
立即咨询

华为云咨询电话:950808或4000-955-988 转1

华为云咨询电话:950808或4000-955-988 转1

华为云专业的服务团队,致力于为您提供专业的售前购买咨询服务,及完善的售后技术服务,助您云上无忧