1. 说明

客户可使用此对外API接口操作平台数据,使用需通过token来调用,token可进行对接口的授权,对接口进行统一的管理。此文档从三个方面讲解:

  1. 前端配置
  2. 后端调用
  3. 逻辑实现

2. 接口调用步骤

比如现在有一个客户端,需要调用平台的接口,我们需要先在系统中新增一个客户端,这个客户端可以配置接口的 clientId (系统生成)、 clientSecret、token生效时长,并且可以对其进行接口授权,允许客户端访问指定的接口。

2.1 系统配置

2.1.1 授权配置中心


填写数据:【名称】【过期时长】【密钥】【是否记录日志】【是否启用】
点击【更多】->【明细】按钮,查看【应用ID】和【密钥】,这两个数据为获取token的关键

2.1.2 授权接口


点击【授权】按钮,查看授权应用可调用的外部API接口

2.1.3 授权日志


显示调用的日志信息,记录授权应用名称,方法类型,接口路径,持续时间

2.2 接口调用

在接口调用之前需要获取token,在每次调用api接口时传递token。

2.2.1 获取token接口

接口地址:
http://localhost/api/api-system/system/token/genToken

接口方法:
GET

输入参数:

clientId:配置的客户ID
clientSecret :客户密钥

返回数据:

{
    success:true,
    data:
    {
        token:"",
        expire:7200
    }
}

另外token是有过期时间的,这个过期时间实在定义客户端调用的时候进行设置的,因此在过期时间之内,可以不需要调用token接口,这样会提升系统调用的性能。

3. 接口定义

3.1 对外API接口编写

对于API接口,我们定义了以下标准,在编写接口时需要遵循以下标准。在定义对外访问接口时,我们需要使用下面的注解规则对接口定义。通过这个配置,我们在对接口进行授权时,才可以在授权时显示出来。


@RequestMapping: 需要以 /restApi/:alias 为规范编写

@ClassDefine:类的信息定义

title:标题
alias:对应RequestMapping的alias

@MethodDefine:方法的信息定义
title:标题
path:对应接口请求地址
method:对应接口请求类型
params:参数集合
@ParamDefine:参数的信息定义
title:标题
varName:参数名

当实现完之后接口就会在授权接口界面就会显示出来。

3.2 实现代码(使用过滤器实现)

这个代码在 jpaas-gateway 项目下:

com.redxun.gateway.filter.ApiTokenFilter

我们定义了一个过滤器,会验证调用接口是否传递了token,以及token是否有效。

isContainAuthUrl:通过此方法拿到当前授权应用所能调用的所有接口,进行判断是否可以调用。

文档更新时间: 2021-08-24 17:27   作者:zyg