Appearance
如何发布对外接口
支持无编码方式发布普通的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;
2. 添加认证
2.1 入口
开发平台->API管理->API接口工具->API参数明细
2.2 参数说明
- 添加参数 tokenID,勾选必填
- 访问接口时,参数传入tokenID
- 配置用户,重置默认密码
- 访问
${ctx}/openapi/app/login
,填入账号密码调用接口获取tokenID
3. 添加接口访问次数限制
3.1 入口
开发平台->API管理->API访问用户管理
- 添加用户时候,输入可访问次数
- 切换到用户权限明细页面,导入API后设置折算扣除次数(每次访问需要消耗的访问次数)
3.2 登录接口限制
3.3 接口放开时间段设置
入口:开发平台->API管理->API接口工具->API工具表单(双击列表中的记录进入)
设置“允许访问时间范围”字段,格式为 HH:mm-HH:mm ,第一个HH:mm为开始时分,第二个HH:mm为结束时分,例如00:00-23:59表示全天允许访问,忽略秒和毫秒比较
3.4 添加访问IP限制
入口:开发平台->API管理->API接口工具->API黑名单IP明细
- 新增即可
4. 数据转换
可以选择将入参通过数据字典值和描述、部门ID与名称、用户ID与名称进行转换
API参数明细和API返回值明细内配置,如果选择了数据字典,还需填写转换控件值,如果数据字典无法转换,则会报错误并给出相关提示。
API返回错误码表:
序号 | 状态码 | 描述 |
---|---|---|
1 | 200 | 调用成功 |
2 | 201 | 接口地址不存在或未授权 |
3 | 203 | 没有到允许访问时间 |
4 | 204 | IP已被禁止访问 |
5 | 205 | 登录接口已被限制 |
6 | 119 | tokenID有误或未登录 |
7 | 120 | tokenID有误或未登录 |
8 | 121 | tokenID有误或未登录 |