此前汇总的文章里面有简单说过SDK。在开发文档内没有完整对其进行说明。其实致远OA官方的开发文档我个人觉得是很有问题的,一般来说都是从入门到深入细节。他们这个开发文档居然在介绍Springboot。由于是接触过他们官方的二开,对项目大概有点了解,此次特意聊聊他们配置开发环境与SDK。
开发环境
分为两个版本。
1.V6.0之前版本,请从产品环境的webapps/seeyon/WEB-INF/lib获取以下jar包:
seeyon-ctp-core.jar jackson-core-asl-1.9.8.jar jackson-core-lgpl-1.9.8.jar jackson-jaxrs-1.9.2.jar jackson-mapper-asl-1.9.8.jar jackson-xc-1.9.2.jar jersey-client-1.17.1.jar jersey-core-1.17.1.jar jersey-json-1.17.1.jar jersey-server-1.17.1.jar jersey-servlet-1.17.1.jar
2.V6.0之后版本,包括V6.0,V6,请从产品环境的webapps/seeyon/WEB-INF/lib获取:
seeyon-ctp-core.jar httpmime.jar httpcore-nio.jar httpcore.jar httpclient-win.jar httpclient-cache.jar httpclient.jar json-lib-jdk15.jar ezmorph.jar commons-beanutils.jar jersey-server.jar jersey-media-multipart.jar jersey-media-jaxb.jar jersey-guava.jar jersey-container-servlet-core.jar jersey-container-servlet.jar jersey-common.jar jersey-client.jar javax.ws.rs-api.jar javax.inject.jar jackson-module-jaxb-annotations.jar jackson-jaxrs-base.jar jackson-databind.jar jackson-annotations.jar hk2-utils.jar hk2-locator.jar hk2-api.jar javax.annotation-api.jar jackson-jaxrs-json-provider.jar jackson-core.jar
官方文档也有上述的说明。只是给出之后就戛然而止了,估计讲究的就是开发者和官网之间的默契,少一点都不行。
引入以上的jar包之后,如想能正常调用,请在对应产品环境的机器上进行开发。就是说,如果你是在正式环境上面拷出以上的jar包,你开发的程序就只能运行在正式环境上。或者需要重新引入并打包。这个事情我咨询过二开,对此讳莫如深,只说了里面会包含致远OA系统的一些配置,所以不能是通用的。
其实这一条就足以影响整个致远的二开生态了。本身只要是开发通用的插件,只要把对应的jar配置到系统中就可以用了。但是因为这样的设置,需要重新引入jar并打包。门槛就高出许多。
SDK
SDK还是没什么说明,就列举几个文档的例子自行理解吧。
1.获取客户端对象的实例
import com.seeyon.client.CTPRestClient; import com.seeyon.client.CTPServiceClientManager; ... // 指定协议、IP和端口,获取ClientManager CTPServiceClientManager clientManager = CTPServiceClientManager.getInstance("http://127.0.0.1:8080"); / 取得REST动态客户机实例 CTPRestClient client = clientManager.getRestClient();
2.Token验证
可以调用authenticate方法进行一次性的登录验证,后续的调用就不必传入token:
//验证rest用户 client.authenticate(userName, password); //绑定登录用户 client.bindUser(loginName);
3.GET
所有GET类的REST接口均可按此方式调用:
// 访问按登录名获取人员信息的接口 // 期待的返回值类型为String,此时返回JSON串 String json = client.get("orgMember/?loginName=" + loginName, String.class); // 同样的调用,此时将JSON解析为Map返回 Map map = client.get("orgMember/?loginName=" + loginName, Map.class); // 此处指定了accept,返回值为xml String xml = client.get("flow/data/-5199818657160149985" , String.class,"application/xml"); // 注意URL中的中文一定要进行编码 client.get("orgMembers/name/" + URLEncoder.encode("中文","UTF-8"), String.class);
4.POST
以新建类接口示例:
// 新建岗位 Map data = new HashMap() { { put("orgAccountId", 967547186016371000l); put("name", "岗位名称"); } }; String post = client.post("orgDepartment", data, String.class);//注意:这里的Map data 切勿传入null,及时data没有信息,也需Map data = new HashMap(); // 新建人员 Map data = new HashMap() { { put("orgAccountId", orgAccountId); put("name", memberName); put("code", ""); put("sortId", 2); put("description", ""); put("orgLevelId", levelId); put("orgPostId", postId); put("orgDepartmentId", departmentId); put("telNumber", ""); put("birthday", null); put("officeNum", ""); put("emailAddress", ""); put("loginName", loginName); } }; client.post("member", data, String.class);
标签:jackson,String,jar,OA,put,client,二次开发,jersey,SDK From: https://www.cnblogs.com/byuc/p/18119738