跳到主要内容

API集成

目录​

一、功能介绍​

二、准备环境​

三、创建HTTP连接​

四、注册API及参数说明​

五、注册API​


一、功能介绍​

API集成功能允许开发者将集成流程、数据服务、第三方服务注册到API网关,使其他服务或应用调用使用API网关做为统一的入口,屏蔽后端体系结构的多样性和复杂性,并对API进行监控和安全管控。

支持穿透代理和协议转换两种代理方式的API,注册的API类型包括:

穿透代理:

  1. HTTP穿透代理
  2. SOAP穿透代理
  3. GRPC穿透代理
  4. Dubbo穿透代理
  5. WebSocket穿透代理

协议转换代理

  1. SOAP转REST代理
  2. gRPC转REST代理
  3. Dubbo转REST代理

API类型选择如下图所示:

选择API类型图示

二、准备环境​

请注意:本文中使用的“API网关注册管理参考附件.zip”中包含一些java编写的程序,提供了一个HTTP、SOAP、Websocket、DUBBO、gRPC类型的接口,仅用于演示注册使用,如有需要请联系管理员获取。如果已有可用于注册到API网关的服务请直接跳过"准备环境"章节。

启动HTTP服务​

将“API网关注册管理参考附件.zip”文件解压,进入“API网关注册管理参考附件\REST、HTTP、WebSocket服务端”目录,该目录下存放的后端程序支持REST API、HTTP API、WebSocket。请在该目录下完成后端服务程序的启动,详细请参考该目录下的readme.txt。启动前请确保已完成Java环境的安装,要求JDK版本为1.8。

启动命令:java -jar restful-api-demo.jar --spring.config.location=application.yaml 接口访问地址:http://{ip}:8089

REST接口列表

请求方法请求路径接口说明
GET/tests/demo获取Demo列表,初始结果为:{"id": 0,"name": "张三","nickName":"小张"}
POST/tests/demo新增一个Demo对象,参数示例:{"id": 1,"name": "李四","nickName": "小李"}
PUT/tests/demo更新Demo信息,参数示例:{"id": 0,"name": "张三","nickName": "张先生"}
DELETE/tests/demo/id根据Demo编号(id)删除Demo信息
GET/tests/demo/id根据Demo编号(id)获取Demo信息
PATCH/tests/demo/id部分更新Demo信息-更新昵称,参数示例:
http://127.0.0.1:8089/tests/demo/0?nickName=zhangsan
调用成功后昵称将被修改,结果为:
{"id": 0,"name": "张三","nickName": " zhangsan "}

Demo对象参数格式(json格式):

参数名参数类型参数说明
idLong编号
nameString名称
nickNameString昵称

启动Websocket服务​

Websocket接口的程序为"API网关注册管理参考附件\REST、HTTP、WebSocket服务端",部署方式见启动HTTP服务。

WebSocket接口列表:

请求路径接口说明
/websocket/sendMessage将客户端发送的信息原样返回,本地部署连接地址示例:ws://127.0.0.1:8089/websocket/sendMessage

启动REST服务​

REST接口的程序为"API网关注册管理参考附件\REST、HTTP、WebSocket服务端",部署方式见启动HTTP服务。

启动SOAP服务​

将“API网关注册管理参考附件.zip”文件解压,进入“API网关注册管理参考附件\WebService服务端”目录,该目录下存放的后端程序支持WebService。请在该目录下完成后端服务程序的启动,详细请参考该目录下的readme.txt。启动前请确保已完成Java环境的安装,要求JDK版本为1.8。

配置文件(application.yml)说明:server.port:程序端口号,默认端口号为8088,如果出现端口被占用的情况请修改该配置

后端服务程序启动命令:java -jar cxf-webservice-demo.jar --spring.config.location=application.yaml

接口访问地址:http://{ip地址}:8088

WSDL文件获取地址:http://{ip地址}:8088/services/MyService?wsdl

WebService服务列表:

请求路径接口说明
getUserList获取user列表
getUser根据名字获取user详情
addUser添加一个user
getData返回hello信息

启动gRPC服务​

将“API网关注册管理参考附件.zip”文件解压,进入“API网关注册管理参考附件\gRPC服务端”目录,该目录下存放的后端程序支持gRPC服务。请在该目录下完成后端服务程序的启动,详细请参考该目录下的readme.txt。启动前请确保已完成Java环境的安装,要求JDK版本为1.8。

后端服务程序启动命令:java -jar simple-grpc-server.jar

服务访问地址:http://{ip地址}:9999

gRPC服务列表:

方法名说明
greeting返回hello信息
test根据id返回人物信息,请求参数格式:
{ "id": "2" }
id可选值为0、1、2、3、4。
响应格式示例:
{ "hobbies": [], "bagOfTricks": {}, "name": "张三", "age": 39, "sentiment": "HAPPY" }

启动DUBBO服务​

将“API网关注册管理参考附件.zip”文件解压,进入“API网关注册管理参考附件\DUBBO服务端\服务端”目录,该目录下存放的后端程序支持DUBBO服务。启动要求如下:

  1. 必须在当前目录下执行命令启动;
  2. 启动前必须确保已完成Java环境的安装,要求JDK版本为1.8;
  3. 完成zookeeper的安装并启动两个不同的程序实例(本例中已启动127.0.0.1:2181、127.0.0.1:2182两个实例,前者供API网关使用,后者供dubbo后端服务使用),建议使用docker;
  4. 修改“配置文件说明”中描述的注册中心地址为步骤3中安装的zookeeper地址。

配置文件(application.yml)说明:

  • dubbo.procotol.port:dubbo端口号,默认为20880,如果出现端口被占用的情况请修改该配置。
  • dubbo. registry.address:dubbo服务端使用zookeeper注册中心的地址。

启动命令:java -jar demo-provider.jar --spring.config.location=application.yaml

DUBBO服务访问地址:http://{ip地址}:20880,dubbo服务的组(group)为test,应用名(application)为demo-provider。

DUBBO服务方法列表:

方法名接口说明
queryTest测试接口,具有两个参数,其接口定义为:
ResponseCommonDto<QueryTestResponseDto> queryTest(String text, QueryTestRequestDto dto)
参数类名分别为:
1.java.lang.String
2.com.example.mobile.server.api.dto.request.QueryTestRequestDto

方法参数说明:

类名参数名参数类型参数说明
QueryTestRequestDtotestIdLong测试id
-uidString编号
ResponseCommonDtotestIdLong自动生成的id
-uidString编号
-createTimeString时间

三、创建HTTP连接​

将需要被网关代理的HTTP接口注册为连接,填写连接名称、地址、路径信息。

路径:后端程序提供的接口具有统一的前缀路径,为方便后续注册API使用请将其填写在“路径”输入框中。本例中使用程序提供的接口以/tests为前缀路径,如将/tests/hello接口注册到网关,后续注册API填写配置时仅需要填写路径为/hello。

认证方式:选择并配置HTTP后端程序的认证方式,如果后端程序接口存在安全认证,需要认证通过后才能调用请配置该选择。

支持认证方式如下:

  1. Basic Auth 需输入“用户名”和“密码”。
  2. JWT认证 需输入“用户名”、“密码”、“获取token的URL”和“获取token的周期”。
  3. Oauth2.0认证 需输入“Client ID”、“Client Secret”、“获取token的URL”和“获取token的周期”。

此例中的后端服务不涉及认证,因此认证方式选择“无”。

注册API及参数说明​

API类型包括:

​ 协议穿透代理:

​ HTTP穿透代理

​ SOAP穿透代理

​ GRPC穿透代理

​ Dubbo穿透代理

​ WebSocket穿透代理

​ 协议转换代理:

​ SOAP转REST代理

​ gRPC转REST代理

​ Dubbo转REST代理

下面就介绍以介绍HTTP穿透代理为例,介绍HTTP穿透代理的相关配置和操作

1、填写基本信息​

  1. 选择API所属资源组,填写API名称。
  2. 如果此次注册的API需要使用https进行访问,请勾选“ssl安全通道”选项;若不勾选,默认为http方式。本例中所使用后端服务为http方式,所以无需勾选。
  3. 填写请求路径,此类型API的基础路径既为API的实际调用路径,需要以“/“开始,默认为前缀匹配方式(例:/test2可以通过/test2/**进行访问);也可以通过勾选匹配全路径选项开启路径精确匹配,开启后仅能通过基础路径(/test2)访问该API。
  4. 选择请求方法,可选请求方法为:GET、PUT、POST、DELETE、HEAD、OPTIONS、TRACE、PATCH,默认为ANY表示可以使用任意请求方法调用该API。
  5. 如果此次注册的API需要开启WAF防护,请勾选“WAF防护”选项;开启后默认提供sql注入、xss防护。
  6. 选择API有效期为无限期,API默认为无限期状态,注册时可以指定一个截止日期,到该日期时API将会自动下线且无法恢复。如果需要延期使用该API请务必在截止日期前对API进行变更并修改截止日期。

2、填写后端配置​

服务类型:选择后端服务的配置方式,可行类型为自定义服务、HTTP服务、Rest API服务。

  1. 自定义服务,手动配置后端服务的IP地址、端口号、接口路径。
  2. HTTP服务,选择一个HTTP类型的数据连接,选择后需要填写接口路径、后端服务超时时间(默认30s),适用与统一后端服务程序中有多个接口需要注册的场景。
  3. Rest API服务,选择一个REST类型的数据连接,选择后需要填写接口路径、后端服务超时时间(默认30s)。 接口路径:需要注册网关的接口的请求路径,如果选择自定义方式请填写完整的接口路径,如果选择HTTP连接、REST连接需要注意是否在连接中配置了前缀路径,前缀路径+接口路径为需要注册的网关的接口的完整请求路径。 超时时间:调用API时网关转发到后端接口的超时时间,超过超时时间后接口响应任未完成,API网关将会中断该次请求并响应状态码504。

3、填写高级配置(可选)​

熔断配置: 熔断是API网关在后端出现性能问题时保护系统的内置机制,默认配置下,当某个API的后端在给定时间内并行调用数量超过1024时,系统会触发熔断保护,超过1024的请求将被拦截,Status=503。当调用频率降低后,熔断恢复正常,请求恢复正常。 参数说明如下:

参数名称参数说明
最大连接数与后端服务集群中所有节点能够建立的最大连接数量(默认1024)
最大待处理数当连接池中连不够是,新的请求将会排队等待获取连接,定义排队的最大请求数量(默认1024)
最大并行请求数在任何给定时间,群集中所有主机可以处理的最大请求数,正整数。

负载均衡配置: 负载均衡集群可以把请求负载压力尽可能平均地分摊到集群中每个节点,使每个节点都可以承担一定的请求负载压力,并且可以实现请求在各节点之间动态分配。 健康检查可以对集群内的节点健康进行判断,分为主动和被动两种方式:

  1. 主动健康检查时,每个固定时间去访问健康检查的接口,来确定节点是否正常。健康检查定时会向健康检查接口发送请求,如果请求失败的次数,超过异常阈值所配置的值,则认为当前节点为不健康,并从集群中暂时弹出该节点(不再向该主机转发任何请求)。健康检查接口返回正常,正常的次数超过健康阈值所配置的值时,则认为该节点正常。
  2. 被动检查检查,当请求的节点返回的响应码为5xx时,如果超过配置的失败次数,从集群中暂时弹出该节点一定时间,超过配置的时间后自动将节点放回集群。 参数说明如下所示:
  • 主动健康检查
    • 主动
      • 参数:
        • 检查路径:后端服务程序中提供的健康检查接口路径,可以携带查询参数。以“/”开头,请求路径。
        • 时间间隔:调用健康检查接口的时间间隔,单位:秒,正整数。
        • 超时时间:等待健康检查接口请求的超时时间,如果达到超时,则本次健康检查将视为失败。单位:秒,正整数。
        • 健康阈值:健康检查接口连续调用成功的次数,超过次数将标记节点健康。单位:次,正整数。
        • 异常阈值:健康检查接口连续调用失败的次数,超过次数将标记节点不健康。单位:次,正整数。
    • 被动
      • 参数:
        • 5xx响应码次数:响应码连续出现5xx的数量,超过次数将标记节点不健康,集群中最少会保留一个健康状态的节点,那怕该节点实际已经宕机。单位:次,正整数。
        • 最大弹出比:允许弹出集群中节点的最大百分比,当标记不健康的节点比例超过最大弹出比时,则不会继续弹出节点,正整数,最大值不能超过100。弹出主机数量为配置参数向上取整,例如:1、有四个节点,配置最大弹出比为40,则最多弹出两个。2、有四个节点,配置最大弹出比为60,则最多弹出三个。
        • 弹出基本时间:节点被标记为不健康的基本时间,正整数,最小值为1。实际弹出时间为弹出基本时间乘以节点连续被弹出的次数;如果节点继续检查不健康,会导致节点被弹出的时间越来越长。当弹出时间达到300s时,不再增加。如果节点在该检查期间是健康的,则弹出时间乘数会减少。假设节点保持健康,大约需要 300s / 弹出基本时间 * 10 秒才能将弹出时间降低到最小值弹出基本时间。

功能开关配置:

  • 重试
    • 重试条件:
      • 网关错误:接收到502、503、504响应码时进行重试
      • 5xx服务器错误:接收到后端服务的5xx响应码时进行重试。
      • 连接错误:出现连接错误(例如超时),包含5xx响应码在内。
      • 409请求冲突重试:接收到后端服务的4xx响应码,当前仅支持409。
      • 自定义重试策略:出现指定的响应码则进行重试。自定义响应码,多个使用“,”分隔;仅当“重试条件”中包含自定义重试策略时,才有该选项。
    • 重试次数:当触发重试条件,API进行重试的次数
    • 超时时间:API重试的超时时间
    • 指数退避:
      • 重试延迟在一个区间范围内随机,以避免指数级重试/超时爆炸。指数退避范围:第 n 次重试的延迟 ≈ [ 0,(2n - 1) * 基础延迟 )
      • 基础延迟:第 1 次重试等待延迟 ≈ [ 0,基础延迟 )
      • 最大延迟限制:最大延迟间隔的上限

流控配置规则: 选择在规则管理中创建的流控规则,对api进行限流。

  • 流控规则
    • 次数控制:控制api在指定时间内的使用次数上限。
    • 流量控制:控制api在指定时间内容请求流量上限。

访问控制规则: 选择在规则管理中创建的访问控制规则,对api进行限流,包括:黑名单、白名单、时间段控制。

HTTP/REST API数据处理规则: 选择在规则管理中创建的HTTP/REST API数据处理,对API的请求、响应进行处理,支持的功能如下:

  • 1. HTTP 验证

    HTTP验证是指用户调用API时将签名身份验证以请求头的方式添加到请求中,API网关对签名信息进行校验以确定传入请求的完整性。签名原文内容默认使用请求头,可以根据需要通过配置强制Header参数,使用请求头+请求体作为签名原文内容【base64(Header 拼接json)_base64(body)】。 请求头封装为json内容格式请按此标准:

    1. 格式为无换行符的json;

    2. Key和Value间使用冒号和空格隔开,如:{"X-Test-Date": "2022-12-01"};

    3. 不同key-value键值对间使用逗号+空格隔开,如:{"X-Test-Date": "2022-12-01", "X-Test-Host": "192.168.1.10"};

    4. 参数顺序为先请求头后请求体,包含多个强制请求头参数时,请求头顺序通过ASCII码确定;

    示例如下: 假设某API请求时有以下请求头:

    请求头值
    X-Test-Namealice
    X-Test-Host192.168.1.10
    X-Test-Date2022-12-01

    该API的请求体内容为:hello 我们使用上述请求头进行签名,在“HTTP验证”插件中配置上述请求头,系统验证签名时将会校验这些请求头。 实际调用是我们需要完成以下操作:

    1. 则根据以上标准将请求头封装为json,内容为:{"X-Test-Date": "2022-12-01", "X-Test-Host": "192.168.1.10", "X-Test-Name": "alice"}

    2. 将请求头json内容进行base64编码为:eyJYLVRlc3QtRGF0ZSI6ICIyMDIyLTEyLTAxIiwgIlgtVGVzdC1Ib3N0IjogIjE5Mi4xNjguMS4xMCIsICJYLVRlc3QtTmFtZSI6ICJhbGljZSJ9

    3. 将请求体内容进行base64编码为:aGVsbG8=

    4. 则实际的签名内容为:eyJYLVRlc3QtRGF0ZSI6ICIyMDIyLTEyLTAxIiwgIlgtVGVzdC1Ib3N0IjogIjE5Mi4xNjguMS4xMCIsICJYLVRlc3QtTmFtZSI6ICJhbGljZSJ9_aGVsbG8=

参数说明
SecretHMAC秘钥,推荐秘钥长度: HmacSHA1(≥20字节)、HmacSHA256(≥32字节)、HmacSHA512(≥64字节)
算法支持HmacSHA1、HmacSHA256、HmacSHA512
强制Headers指定用来签名的请求头
时钟偏差用于防止重放攻击,超过时间的请求将会被拒绝
  • 2. HTTP 签名

    HTTP签名是在API调用时,API网关将签名身份验证以请求头的方式添加到请求中,后端服务通过签名信息以确定传入请求的完整性。 HTTP签名是一种增加了安全性的认证方法。使用当前插件可以生成带有一组请求头、最大有效期和其他一些设置的HTTP签名。签名是由签名算法(HmacSHA1,HmacSHA512,HmacSHA256)生成的。 签名原文内容格式与HTTP验证相同

    参数说明
    SecretID随机字符串id
    SecretHMAC秘钥,推荐秘钥长度: HmacSHA1(≥20字节)、HmacSHA256(≥32字节)、HmacSHA512(≥64字节)
    算法支持HmacSHA1、HmacSHA256、HmacSHA512
    Headers指定用来签名的请求头
    创建时间签名内容中加入签名生成时间
    过期时间签名内容中加入签名过期时间
    有效期指定签名有效期,单位(秒)
  • 3. 数据加密

    数据加密插件利用不同算法对请求或响应body进行加密,实现信息屏蔽,从而起到保护信息的安全。后端接口将收到加密后的body内容,以此保障用户数据的安全性。包含对称加密(AES-256、AES-128、SM4),非对称加密(RSA、SM2)

    数据加密示例:

    a) 选择对称加密。

    b) 加密算法选择AES-128。

    c) 输入16位的秘钥,例如:1111111111111111。

    d) 保存插件配置,携带body调用API。Body:{ "name":"张三" }。

    e) 到后端的实际body为加密后的字符串pkqte9r1LTjDnnlD28jwaUZS+eEbPoa766J8OXkRknI=

  • 4. 数据解密

    数据解密插件通过选定的算法对请求或响应body进行解密,将解密后的结果发送给后端或者返回。当插件位于请求流时请求body必须是通过指定算法进行加密的内容,位于响应流时响应body必须是通过指定算法进行加密的内容。

    数据解密示例:

    a) 选择对称解密。

    b) 解密算法选择AES-128。

    c) 输入16位的秘钥,例如:1111111111111111。

    d) 保存插件配置,携带body调用API。Body:pkqte9r1LTjDnnlD28jwaUZS+eEbPoa766J8OXkRknI=。

    e) 后端的实际body为解密后的字符串{ "name":"张三" }。

  • 5. Headers 转换

    Header转换插件可以对API的请求头或响应头进行增加或者删除操作。

    Header示例:

    a) 选择增加请求头。

    b) 输入key、value。例如:key:Header1,value:112233。

    c) 保存插件配置。

    d) 调用API,在后端服务查看请求头详情。

    e) 在用户不带请求头Header1的情况下,网关会增加一个请求头Header1。

    f) 请求头的名称会按照标准名称规范-首字母大写。

  • 6. Query参数转换(仅请求)

    Query参数转换组件支持对请求中的参数进行增加或者删除操作(仅支持请求)。

    Query示例:

    a) 选择增加查询参数。

    b) 输入key、value。例如:key:Query1,value:18。

    c) 保存插件配置。

    d) 调用API,在后端服务查看请求详情。例如:/hello

    e) 后端服务实际接收到的请求为:/hello?Query1=18

  • 7. JSON 转XML

    JSON转XML插件支持将json格式的请求或响应body转换为xml格式。

    JSON转XML示例:

    a) 选择JSON转XML插件。

    b) 输入根元素,例如root。

    c) 保存配置。

    d) 携带body调用API查看后端服务详情。Body:{ "name":"张三" }。

    e) 最终后端服务接收到的body为:<?xml version="1.0" encoding="UTF-8"?><root><name>张三</name></root>

  • 8. XML转JSON

    XML转JSON插件支持将xml格式的请求或响应body转换为json格式。

    XML转JSON示例:

    a)选择XML转JSON插件。

    b)保存配置。

    c)写到body调用API,查看后端服务详情。

    body:<root> <name>张三</name> </root>

    后端接收到的body为:{"root":{"name":"张三"}}

  • 9. 有效性验证(仅请求)

    有效性验证插件支持对请求头或者json格式body中的字段进行校验。

    有效性验证示例:

    a) 选择有效性验证插件。

    b) 输入字段header.name。

    c) 规则选择大于等于,输入10。

    d) 保存配置。

    e) 携带请求头name字段,值为5。调用API查看结果。

    f) 网关报错,返回错误信息:参数值校验失败,不满足最小值校验。

    g) 再次携带请求头name字段,值为15。调用API查看结果。

    h) 正常通过请求。

  • 10. 数据映射

    数据映射支持自定义的body格式转换,支持通过拖拽的方式定义字段间的映射关系,支持xml、json格式数据间的自由转换。详细介绍请参考《006_TongGW_V2.0数据映射操作手册》。 在插件页面,拖拽页面右侧数据映射插件到左侧Request或Response区域。

    配置项说明如下表所示:

    配置项名称说明
    描述该插件的描述,仅提示作用
    流类型若该插件流程是REQUEST,则流类型为请求;若该插件流程是RESPONSE,则流类型为响应。

    数据映射UI 是一种数据映射解决方案,可简化Java、XML、CSV和JSON数据源之间的配置集成。 数据映射UI配置:

    该插件支持可视化数据映射,无需编写程序。支持JSON、XML、CSV互相转换。

    支持内容映射,将输入的内容映射到输出字段上,支持json和xml协议转换,只支持字段级的映射。

    1. 一对一,支持各种映射方式、追加、首字母大写等等。

    2. 多对一,支持多个字段对一个字段、一个数组对一个字段,支持各种过滤条件和组合方式。

    3. 一对多,支持一个字段对数组或者一个字段对多个字段,支持各种分隔方式。

    内容映射的源可以是上一步的输出,或者是全局变量。目标是下一步的输入或者全局变量。 内容映射可以是对象到对象的映射,数组到数组的映射。当作对象到对象的映射时,对象下的字段不能再作映射。对象到对象的映射不支持转换方式。全局变量如果是没有schema的object对象,不会出现在内容映射的源或者目标中。

    1. 单击数据映射下拉框可选择导入映射、导入jar包、导出映射、清除所有数据和映射,如下图所示:

    2. 单击正上方图标可转换为对应页面,例如列、表格、名字空间、显示/隐藏映射预览、显示/隐藏类型等(具体图标对应内容可将鼠标悬停在图标上查看)。如下图所示:

    3. “源”代表需要映射的字段,“目标”代表需要映射的目标字段,“连线”代表映射关系,单击连线可查看具体的映射详情。 用户导入文件后,将导入的文件结果进行拖拽,把源字段放在目标字段上,即可完成映射关系。如下图所示(源的name字段映射到superName字段):

    4. 调用API,查看调用结果(以基本类型为HTTP API,后端服务为自定义服务的API为例): a) 未加插件,调用结果如下图所示:

      b) 加入数据映射插件,调用结果(以常用的一对一、JSON转XML、XML转JSON、一对多为例)如下图所示:

      1. 一对一 数据映射的源导入有name字段的json文件,目标处导入有superName字段的json文件,都导入成功后,将name字段映射到superName字段。

        调用API时,假设存在映射关系:name => superName,请求Body中name参数的值将会被映射为Body的superName参数发送到后端。

      2. JSON转XML 数据映射的源导入json文件,目标处导入xml文件,都导入成功后,选择源json文件里的字段映射到目标xml文件里的字段。

        调用API时,假设源文件中的映射字段为name,请求Body中name字段将会被映射为xml字段内容发送到后端。

      3. XML转JSON 数据映射的源导入xml文件,目标处导入json文件,都导入成功后,选择源xml文件里的字段映射到目标json文件里的字段。

        调用API时,假设源文件中的映射字段为name,请求Body中name字段将会被映射为json字段内容发送到后端。

      4. 一对多 数据映射的源和目标都分别导入json文件,都导入成功后,选择源文件里的一个字段映射到目标json文件里的多个字段。

        调用API时,源文件中的映射字段作为请求参数,参数的值根据映射中的映射关系来赋值,例如space,那么如果name字段为:

       {
      "name": "123 111"
      }

      请求接口后name字段将会被映射为json字段内容发送到后端,例如:

       { 
      "basePath": "123",
      "host": "111"
      }

  • 11. 动态路由(仅请求)

    根据路由规则中的条件判断是否将请求重定向到新的后端地址。当匹配条件成功命中以后请求将重定向到新的后端,反之后端保持不变。【详细的匹配条件语法参考动态路由语法规则文档】

  • 12. HTTP方法重置(仅请求)

    将当前API的请求方法在转发到后端服务前,改为HTTP方法重置插件中的配置的请求方式。

    HTTP方法重置示例:

    a) 填写重置方法 POST。

    b) 绑定该插件到需要调用的API上。

    c) 调用API(原始API请求方法为GET),当请求到达后端时,请求方法改为POST。

4、请求参数定义(可选)​

请求参数定义仅为用户使用API时做提示作用,类似于API文档。参数定义可以给后端配置产生的服务URL、路径或方法配置请求和响应参数,包括请求参数(Query、Header、Body)、请求示例,响应参数(Header、Body)、返回示例、错误码等。除类型为Websocket的API外,其余类型也可查看和下载相关文档(如:SOAP类型可以查看、下载wsdl文件)。 注意:类型为Websocket、SOAP、gRPC、Dubbo并且代理方式为穿透代理的API没有参数定义。

5、响应参数定义(可选)​

响应参数定义与请求参数定义类似,仅为用户使用API时做提示作用,类似于API文档。

6、管理属性配置(可选)​

定义API的管理属性。

  • 安全级别:指定api的安全密级
  • 标签:指定api的标签
  • 项目名称:选择api所属项目,默认属于公共项目,选择所属项目后,如果某用户没有该项目的权限,此用户将无法查看该api。

7、API文档​

OpenAPI 文档指定 Web API 的公开区域协定。 它根据 API 的使用者将实际实现规范抽象化。 知道调用的方法及其返回的内容,就可以快速生成应用程序,在TUS中,可以根据API文档的描述,快速的了解API。

8、测试用例​

TUS中,测试用例根据不同的语言描述,多方位的显示该API的在代码中的调用示例,使用户更加清晰明了的了解此API。

9、订阅信息​

查看API的订阅信息,包括授权有效期,订阅时间,审批人和状态等

10、版本​

在多次的变更和切换版本过程中,可以方便的查看API的版本信息,包括API 的版本号及对应的工作状态、测试状态、审批状态、所属项目等等。

五、注册API​

保存草稿​

将填写好的API信息保存为“草稿”状态,后续可通过左侧“资源管理器”点击进行查看或编辑。

注册​

将API注册到网关前需要提交API注册申请给“审批管理员”进行审批,点击“注册”按钮完成API注册申请的提交

审批​

使用具有“审批管理员”角色权限的账号,点击进入菜单“运维中心 》 审批管理 》 API目录审批”,找到需要审批的API,点击“通过”完成注册审批。

部署​

API注册审批完成后可以将API部署到运行时,部署完成后API可以通过运行时进行调用。