# API网关

API网关(API Gateway)是为开发者、合作伙伴提供的高性能、高可用、高安全的API托管服务,帮助用户轻松构建、管理和发布任意规模的API。主要针对企业及外部系统对接、形成企业内容开发平台,统一解决:认证、鉴权、安全、流量管控、缓存、服务路由、协议转换、服务编排、熔断、灰度发布、监控报警等。为企业提供统一的对外的API入口,为企业的暴露的API保驾护航,帮助您快速构建以API为核心的系统架构。

# 产品简介

# 产品功能

  • API生命周期管理 支持API发布、API配置、API测试、API下线等生命周期管理功能。
  • 灵活的权限控制
    • API提供者可以将调用某个API的权限主动授予给每个客户端。
  • 精确的流量管理
    • 流量控制可以用于管控API的限流算法、API流量限制、用户流量限制、APP流量限制。
    • 流量控制的粒度更小,时间单位是秒。

# 产品优势

  • 解放生产力
    • 围绕API生命周期的各个阶段提供生产力工具,大大提高API管理、运维效率、降低日常维护成本。
  • 高性能高可靠
    • 分布式部署,承载大规模访问,低延迟处理。
  • 安全可控
    • API网关提供严格的权限管理功能、精准的流量控制功能,让您的服务安全、稳定、可控。

# 操作指南

# 实例地址

是一个出口地址,包括公网地址和内网地址。 图片21

# 分组管理

一个完整的服务一般由一组API共同组成,而API网关的分组管理功能可以帮您高效、便捷的管理一组具有关联的API。

# 创建分组

1.登录极客社区平台: 2.登录成功后,选择云服务-->Api网关-->分组管理,进入“分组管理”页面。 3.点击“新增”,开始新增分组。 图片1 4.点击保存,就完成了新增分组。 图片2

# 分组管理

图片3 1.选择云服务-->Api网关-->分组管理,进入“分组管理”页面,点击“编辑”,对分组进行修改。 2.选择云服务-->Api网关-->分组管理-->删除

# API列表

# 创建API

创建API操作需要定义API的基本信息、请求信息、后端服务信息、返回结果信息。创建完成的API仅为一份API定义,无法直接调用,需要使用发布功能发布至具体环境后方可调用。 选择云服务-->Api网关-->API列表,进入“API列表”页面,点击“新增”,开始创建API。 图片4

# 配置API基本信息

API基本信息是对API的概述。 图片5

  • 分组:指明API所属分组,请在创建API前完成所属分组的创建。API将使用所属分组的属性,包括:域名、环境变量等。
  • API名称:API名称在所属分组中不可重复。
  • 安全认证:
    • 无认证:任何API调用者均可对当前API发起请求(安全性较差,若无特殊需求,不推荐使用)。无法使用APP、账户级别的流量控制功能。
    • OAuth 2.0认证授权:数据的所有者告诉系统,同意授权第三方应用进入系统,获取这些数据。系统从而产生一个短期的进入令牌(token),用来代替密码,供第三方应用使用。
    • ApiKey授权:当API调用者发起请求时,通过请求中包含的APP信息判断当前调用者是否有权调用当前API。
  • 优先级:判断API调用的优先顺序。
  • 描述:对API进行基本描述,内容会用于文档显示。

# 配置API请求信息

# 请求方式

API请求信息描述了API的调用者如何对当前API发起请求,包括基础定义请求和入参定义。 图片6

  • 请求Path:指名请求的接口路径,无字符限制,对url不支持的字符(如:中文、标点符号等)无需进行转义。若在Path中使用转义字符,则会被API Gateway反转义为原始字符保存、使用。
    • 匹配所有子路径:支持对当前Path的子路径的匹配。
  • 匹配方式:包括模糊匹配和精准匹配。
  • HTTP Method:支持GET、POST、ANY。ANY表示任意Method。
  • 入参请求模式:包括入参映射(透传未知参数)、入参映射(过滤未知参数)和入参透传。
# 请求参数

图片7

  • 参数名称:发起API调用时需要使用的参数名称,不可重复。
  • 参数位置:支持Query、Head、Parameter Path。
  • 参数类型:STRING、INT、LONG、FLOAT、DOUBLE、BOOLEAN。
  • 必填:参数是否必填。PATH位置参数一定为必填。
  • 默认值:非必填参数可设置默认值。
  • 示例:取值示例,内容会用于文档显示。
  • 描述:参数描述,内容会用于文档显示。

# 配置API后端服务信息

API后端服务信息描述了API开放者提供的服务相关信息,包括后端请求方式、后端请求参数、后端常量参数、后端系统参数。后端服务支持HTTP(S)、Nacos和Mock四种类型,需要配置不同后端请求方式。

# HTTP(S)类型后端服务

图片8

  • 服务地址:指名后端资源所在主机的地址,支持域名、IP形式,不可重复。
    • 类型:当前均为实例。
    • 权重:指名多后端地址轮询时,当前地址的权重,取值为1~100之间的整型值,默认为1。当具有多个后端地址时生效。
  • 请求Path:指名后端资源具体路径,无字符限制,对url不支持的字符(如:中文、标点符号等)无需进行转义。若在Path中使用转义字符,则会被API Gateway反转义为原始字符保存、使用。
  • HTTP Method:支持GET、POST、ANY。
  • 后端超时:单位为毫秒,取值为1~300000之间的整型值,默认为90000。
  • 注意: 1.在后端服务地址、后端请求Path中,可通过#环境变量名称#的方式使用环境变量。 2.后端请求Path中形如“/[Path参数名]”用于表示Path参数,需要与后端请求参数中的Path参数一一对应。 3.当API请求方式、后端请求方式中,同时勾选匹配子路径时,后端访问会透传请求路径。 4.当API请求方式、后端请求方式中,同时使用ANY方法时,后端访问会透传请求Method。
# Nacos类型后端服务

图片9

# Mock类型后端服务

图片10

  • Mock返回结果:指名当前接口的Mock结果。API Gateway返回的ContentType为“application/json”,因此建议填写JSON格式内容。
  • HTTP Status Code:指名返回请求码,默认为200。合法取值包括:200、201、202、203、204、205、206、300、301、302、303、304、305、307、400、401、402、403、404、405、406、407、408、409、410、411、412、413、414、415、416、417、450、451、500、501、502、503、504、505。
# 后端服务参数配置

图片11

  • 后端参数名称:指名向后端转发的参数名称,在所有后端参数中不可重复。
  • 后端参数位置:支持Parameter Path、Query、Header、Body。
# 后端请求常量参数

图片12

  • 后端参数名称:指名常量参数名称,在所有后端参数中不可重复。
  • 参数值:不可为空。
  • 参数位置:支持Query、Head。
# 后端请求系统参数

图片13

  • 系统参数名:指名系统参数名称,在所有后端参数中不可重复。
  • 参数值:指名当前系统参数需要的取值,见下表说明。
  • 参数位置:支持Query、Head。
# 定义返回结果

图片14

  • 返回结果ContentType:包括透传客户端ContentType头、自定义、API网关默认。

# 修改API

创建API后可按需对API进行修改 选择Api网关-->API列表-->API基本信息-->修改 图片16

# 删除API

选择Api网关-->API列表-->API基本信息-->删除

# 发布API

API定义需要发布至具体环境中使定义生效,API调用者可在对应环境中调用该API。 选择Api网关-->API列表-->API基本信息-->发布

# 插件管理

# 新增插件

选择Api网关-->插件管理-->新增 图片17

  • 插件类型:包括流量控制、IP访问控制、CORS跨域资源访问、熔断、日志脱敏。 点击“提交”,新增成功。 图片18

# 绑定、解绑API

选择Api网关-->插件管理-->绑定API 选择Api网关-->插件管理-->解绑API 图片19 选择自己需要的插件进行绑定 图片20

# 修改插件

选择Api网关-->插件管理-->修改

# 删除插件

选择Api网关-->插件管理-->删除