Skip to content
On this page

如何发布对外接口

支持无编码方式发布普通的rest接口,并提供认证、访问次数限制功能,支持自定义业务逻辑处理类

1. 发布接口

1.1 入口

开发平台->API管理->API接口工具->新增

1.2 主要参数说明

1.2.1 访问地址

接口发布后,给外部系统访问的地址。一般为两层路径,第一层是project名,第二层是接口地址,如填写/a/b 则访问为${ctx}/openapi/a/b

1.2.2 api类型

有认证API、新增类、查询类、修改类、删除类API,根据API实际情况选择。

  • 单条新增:入参为对应的实体字段,无需传入主键
  • 批量新增:入参为{"datas":[{入参为对应的实体字段}…]},即datas做key,传入数组,无需传入主键
  • 单条查询:返回结果只能是空或一条数据
  • 批量查询:返回结果是空或多条数据
  • 单条修改:入参必须携带主键,主键的key可以用keyid
  • 批量修改:入参为{"datas":[{参数字段}…]} ,参数字段必须携带主键,主键的key可以用keyid
  • 单条删除:入参必须携带主键,主键的key可以用keyid
  • 批量删除:入参为{"datas":[{keyid}…]} ,必须携带主键值,主键的key可以用keyid
  • 认证API:不能选择操作Entity,只能编写处理类(全类名:方法名),访问地址最后一层必须是login或logout,注意入参必须是Map<String,Object>,返回值则为Result,并且login需要添加登录信息进缓存,logout则从缓存删除,可以参考CommonAPIService的login和logout方法

Login方法代码:

java
APISessionBeanbean=newAPISessionBean();
bean.setTokenID(tokenID);
bean.setIp(ip);
bean.setLoginTime(DateUtils.getDateTime());
bean.setToolApiUser(user);
CacheServiceInstance.getInstance().set("ApiTokens:"+tokenID,JSON.toJSONString(bean),30,TimeUnit.MINUTES);
toolApiUserMapper.updateByPrimaryKey(user);

Logout方法代码:

java
CacheServiceInstance.getInstance().delete("ApiTokens:"+tokenID);

1.2.3 操作entity

表名或实体名(简单类名)

1.2.4 操作SQL/Class

业务sql或实体类(全类名:方法名),与操作entity二选一,优先使用操作entity;
如果实体类,则注意入参必须是Map<String,Object>,返回值则为Result; (查询单条数据Result<Map>,查询多条数据Result<List<Map>>) 如果是查询API还需注意配置API返回参数明细。

执行前判断SQL:sql(非查询)或实体类(全类名:方法名),如果实体类,则注意入参必须是Map<String,Object>,返回值则为Result;

执行后更新SQL1:sql(非查询)或实体类(全类名:方法名),如果实体类,则注意入参必须是Map<String,Object>,返回值则为Result;

执行后更新SQL2:sql(非查询)或实体类(全类名:方法名),如果实体类,则注意入参必须是Map<String,Object>,返回值则为Result;

avatar

2. 添加认证

2.1 入口

开发平台->API管理->API接口工具->API参数明细

2.2 参数说明

  • 添加参数 tokenID,勾选必填
  • 访问接口时,参数传入tokenID
    • 配置用户,重置默认密码
    • 访问${ctx}/openapi/app/login,填入账号密码调用接口获取tokenID

3. 添加接口访问次数限制

3.1 入口

开发平台->API管理->API访问用户管理

  • 添加用户时候,输入可访问次数
  • 切换到用户权限明细页面,导入API后设置折算扣除次数(每次访问需要消耗的访问次数)

3.2 登录接口限制

avatar

3.3 接口放开时间段设置

  • 入口:开发平台->API管理->API接口工具->API工具表单(双击列表中的记录进入)

  • 设置“允许访问时间范围”字段,格式为 HH:mm-HH:mm ,第一个HH:mm为开始时分,第二个HH:mm为结束时分,例如00:00-23:59表示全天允许访问,忽略秒和毫秒比较

avatar

3.4 添加访问IP限制

入口:开发平台->API管理->API接口工具->API黑名单IP明细

  • 新增即可

avatar

4. 数据转换

可以选择将入参通过数据字典值和描述、部门ID与名称、用户ID与名称进行转换

API参数明细和API返回值明细内配置,如果选择了数据字典,还需填写转换控件值,如果数据字典无法转换,则会报错误并给出相关提示。

avatar

API返回错误码表:

序号状态码描述
1200调用成功
2201接口地址不存在或未授权
3203没有到允许访问时间
4204IP已被禁止访问
5205登录接口已被限制
6119tokenID有误或未登录
7120tokenID有误或未登录
8121tokenID有误或未登录