平台集成了很多第三方功能,通过统一的封装模式进行封装,屏蔽了其技术细节。本篇介绍了封装模式:
一、统一封装为jar包,存入maven。例如百度人脸识别为:
<groupId>org.qlm</groupId>
<artifactId>baidu-face-utils</artifactId>
<version>1.0-SNAPSHOT</version>
二、引入参数
@Configuration
@Component
public class BaiduFaceConfig implements ApplicationRunner {
@Value("${qlm.baidu.clientId}")
public String clientId;
@Value("${qlm.baidu.clientSecret}")
public String clientSecret;
public void run(ApplicationArguments args) throws Exception {
BaiduFaceUtil.init(clientId, clientSecret);
}
}
这样BaiduFaceUtil类就有了定义的参数
三、定义各种dto用于封装
例如:
@Data
@Schema(name = "faceDto",description = "照片信息")
public class faceDto {
//图片信息
private String image;
// BASE64 FACE_TOKEN
private String image_type;
//用户组id
private String group_id;
private String user_id;
private String user_info;
/*
图片质量控制
NONE: 不进行控制
LOW:较低的质量要求
NORMAL: 一般的质量要求
HIGH: 较高的质量要求
默认 NONE
若图片质量不满足要求,则返回结果中会提示质量检测失败
*/
private String quality_control;
/*
活体检测控制
NONE: 不进行控制
LOW:较低的活体要求(高通过率 低攻击拒绝率)
NORMAL: 一般的活体要求(平衡的攻击拒绝率, 通过率)
HIGH: 较高的活体要求(高攻击拒绝率 低通过率)
默认NONE
若活体检测结果不满足要求,则返回结果中会提示活体检测失败
* */
private String liveness_control;
/*
操作方式
APPEND: 当user_id在库中已经存在时,对此user_id重复注册时,新注册的图片默认会追加到该user_id下
REPLACE : 当对此user_id重复注册时,则会用新图替换库中该user_id下所有图片
默认使用APPEND
*/
private String action_type;
/*
操作方式
APPEND: 当user_id在库中已经存在时,对此user_id重复注册时,新注册的图片默认会追加到该user_id下
REPLACE : 当对此user_id重复注册时,则会用新图替换库中该user_id下所有图片
默认使用APPEND
*/
private String face_sort_type;
}
四、定义静态函数
//入库
public static faceOperResultDto faceAdd(faceDto face)
//搜索
public static faceSearchResultDto faceSearch(faceDto face)
五、使用
增加maven引用,直接调用静态函数即可