系统集成行业信息化、数字化解决方案与案例,系统集成解决方案的设计原则与主要模式
1054
2022-05-30
场景说明
用户在某些业务场景下需要以非界面方式实现操作FusionInsight Manager系统,要求开发基于HTTP Basic认证的应用程序实现如下功能:
登录FusionInsight Manager系统。
访问FusionInsight Manager系统,进行查询、添加、删除等操作。
开发思路
功能分解
根据上述的业务场景进行功能分解,需要开发的功能点如表11-198所示。
表11-198 在Manager中开发的功能
序号
步骤
代码实现
1
添加用户
请参见“添加用户”。
2
查找用户
请参见“查找用户”。
3
修改用户
请参见“修改用户”。
4
删除用户
请参见“删除用户”。
5
导出用户列表
请参见“导出用户列表”。
数据准备
从FusionInsight Manager的Rest API接口文档中获取webUrl以及用户想要实现的操作对应的Url。
从FusionInsight Manager的Rest API接口文档中获取想要实现的操作对应需要的json请求体参数和格式,并创建和保存相应的json文件。
样例代码说明
登录认证
实现Basic认证登录,并返回登录后的httpClient。
配置用户的集群信息和登录帐号信息:
配置文件:“样例工程文件夹\conf\UserInfo.properties”。
参数说明:
userName:登录Manager系统的用户名。
password:userName对应的用户密码。
webUrl:Manager首页地址。
填写“UserInfo.properties”文件中的参数,注意填写的准确性,可以仿照以下参数示例进行填写,其中,“IP_Address”填写FusionInsight Manager对应的浮动IP地址。
如果需要使用其他用户进行操作,请先登录FusionInsight Manager创建用户。
userName= admin password= adminPassWord webUrl= https://IP_Address:28443/web/
以下代码片段是调用firstAccess接口完成登录认证的示例,在“rest”包的“UserManager”类的main方法中。
BasicAuthAccess authAccess = new BasicAuthAccess(); HttpClient httpClient = authAccess.loginAndAccess(webUrl, userName, password, userTLSVersion); LOG.info("Start to access REST API."); HttpManager httpManager = new HttpManager(); String operationName = ""; String operationUrl = ""; String jsonFilePath = "";
添加用户
通过访问Manager接口完成添加用户。
以下代码片段是添加用户的示例,在“rest”包的“UserManager”类的main方法中。
//访问Manager接口完成添加用户 operationName = "AddUser"; operationUrl = webUrl + ADD_USER_URL; jsonFilePath = "./conf/addUser.json"; httpManager.sendHttpPostRequest(httpClient, operationUrl, jsonFilePath, operationName)
查找用户
通过访问Manager接口完成查找用户。
以下代码片段是查找用户的示例,在“rest”包的“UserManager”类的main方法中。
//访问Manager接口完成查找用户列表 operationName = "QueryUserList"; operationUrl = webUrl + QUERY_USER_LIST_URL; String responseLineContent = httpManager.sendHttpGetRequest(httpClient, operationUrl, operationName); LOG.info("The {} response is {}.", operationName, responseLineContent);
修改用户
通过访问Manager接口完成修改用户。
以下代码片段是修改用户的示例,在“rest”包的“UserManager”类的main方法中。
//访问Manager接口完成修改用户 operationName = "ModifyUser"; String modifyUserName = "user888"; operationUrl = webUrl + MODIFY_USER_URL + modifyUserName; jsonFilePath = "./conf/modifyUser.json"; httpManager.sendHttpPutRequest(httpClient, operationUrl, jsonFilePath, operationName);
删除用户
通过访问Manager接口完成删除用户。
以下代码片段是删除用户的示例,在“rest”包的“UserManager”类的main方法中。
//访问Manager接口完成删除用户 operationName = "DeleteUser"; String deleteJsonStr = "{\"userNames\":[\"user888\"]}"; operationUrl = webUrl + DELETE_USER_URL; httpManager.sendHttpDeleteRequest(httpClient, operationUrl, deleteJsonStr, operationName); LOG.info("Exit main.");
导出用户列表
通过访问Manager接口完成导出用户列表,导出用户列表需要依次调用导出和下载接口完成用户列表的导出。导出接口的输出为下载接口的输入。
以下代码片段是导出用户列表的示例,在“rest”包的“ExportUsers”类的main方法中。
String operationName = "ExportUsers"; String exportOperationUrl = webUrl + EXPORT_URL; HttpManager httpManager = new HttpManager(); //调用导出接口 String responseLineContent = httpManager .sendHttpPostRequestWithString(httpClient, exportOperationUrl, StringUtils.EMPTY, operationName); //调用下载接口 operationName = "DownloadUsers"; JSONObject jsonObj = JSON.parseObject(responseLineContent); String downloadOperationUrl = webUrl + DOWNLOAD_URL + jsonObj.getString("fileName"); httpManager.sendHttpGetRequest(httpClient, downloadOperationUrl, operationName);
FusionInsight
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。