# 1. Jhinno OpenAPI SDK for Java 针对Java的景行API SDK使Java开发人员能够轻松使用景行API接口。您可以在几分钟内开始通过Maven或jar文件使用它。 - [仓库地址:https://github.com/yanlongqi/jhinno-openapi-java-sdk](https://github.com/yanlongqi/jhinno-openapi-java-sdk) - [开发文档:https://jhinno-sdk-doc.yuchat.top/apidocs](https://jhinno-sdk-doc.yuchat.top/apidocs) - [最新jar包:jhinno-openapi-java-sdk-1.0.0.jar](https://jhinno-jenkins.yuchat.top/job/jhinno-openapi-java-sdk/lastSuccessfulBuild/artifact/target/jhinno-openapi-java-sdk-1.0.0.jar) - [最新源码包:jhinno-openapi-java-sdk-1.0.0-sources.jar](https://jhinno-jenkins.yuchat.top/job/jhinno-openapi-java-sdk/lastSuccessfulBuild/artifact/target/jhinno-openapi-java-sdk-1.0.0-sources.jar) ## 1.1 必要条件 - Java 1.8 or later - Maven ## 1.2 支持的Appform的版本 1. JH_Appform_6.0_Release 2. JH_Appform_6.0_SP1_Release 3. JH_Appform_6.1_Release # 2. 快速开始 ## 2.1 SpringBoot ### 2.1.1 安装 建议在您的项目中使用Jhinno OpenAPI SDK for Java的方法是从Maven中使用它。: #### 方法一:通过Maven仓库安装 > 添加仓库地址(改方案为备用方案,后续会上传至Maven中央仓库,目前不影响正常使用) ```xml jhinno-nexus jhinno-nexus https://jhinno-nexus.yuchat.top/repository/maven-releases ``` #### 方法二:通过命令将jar包导入本地Maven仓库 ```shell # SDK Client的jar包的导入,其中为jar的路径,为jar包路径 mvn org.apache.maven.plugins:maven-install-plugin:3.1.1:install-file -Dfile="/jhinno-openapi-java-sdk-1.0.0.jar" -Dsources="/jhinno-openapi-java-sdk-1.0.0-sources.jar" # 例如 mvn org.apache.maven.plugins:maven-install-plugin:3.1.1:install-file -Dfile="E:/下载/jhinno-openapi-java-sdk-1.0.0.jar" -Dsources="E:/下载/jhinno-openapi-java-sdk-1.0.0-sources.jar" # SDK SpringBoot Starter的jar包的导入,其中为jar的路径,为jar包路径 mvn org.apache.maven.plugins:maven-install-plugin:3.1.1:install-file -Dfile="/jhinno-openapi-sdk-spring-boot-starter-x.x.x.jar" -Dsources="/jhinno-openapi-sdk-spring-boot-starter-x.x.x-sources.jar" # 例如 mvn org.apache.maven.plugins:maven-install-plugin:3.1.1:install-file -Dfile="E:/下载/jhinno-openapi-sdk-spring-boot-starter-1.0.1.jar" -Dsources="E:/下载/jhinno-openapi-sdk-spring-boot-starter-1.0.1-sources.jar" ``` > 注: > - jhinno-openapi-java-sdk-x.x.x.jar 为SDK的jar包。 > - jhinno-openapi-java-sdk-x.x.x-sources.jar 为源码包,添加可方便查看SDK代码的注释。 > - jhinno-openapi-sdk-spring-boot-starter-x.x.x.jar 为SDK的spring-boot-starter的jar包。 > - jhinno-openapi-sdk-spring-boot-starter-1.0.1-sources.jar 为SDK的spring-boot-starter的源码包。 ### 2.1.2 引入`jhinno-openapi-sdk-spring-boot-starter`坐标 ```xml com.jhinno jhinno-openapi-sdk-spring-boot-starter 1.0.1 ``` ### 2.1.3 配置 在SpringBoot的`application.properties`或`application.yml`里面配置 #### 2.1.3.1 application.yaml ```yaml jhinno: openapi: server-url: https://{appform服务器的地址}/appform used-server-time: true ``` #### 2.1.3.2 application.properties ```properties jhinno.openapi.server-url=https://{appform服务器的地址}/appform jhinno.openapi.used-server-time=true ``` > 注: > - 其中`jhinno.openapi.server-url`为景行接口服务的BaseUrl; > - `jhinno.openapi.used-server-time`是否获取服务器时间来请求token,关闭可提高获取token的时间,但打开有可能因为服务器时间不准确而导致token获取失败的问题。 > - 更多配置见`com.jhinno.sdk.openapi.autoconfigure.JHOpenapiProperties`源码。 ### 2.1.4 使用 在`com.jhinno.sdk.openapi.api`包下面对应`app`、`data`、`file`、`job`、`organization`这几个子包,分别代表景行`Appform` 的应用、作业数据、文件、作业操作、组织等接口资源。开发者只需要使用接口的执行器(`JHxxxApiExecution` )即可使用资源,如:`JHFileApiExecution` ```java public class DemoUserSDK { /** * 注入要调用的执行器 */ @Autowired private JHFileApiExecution fileApiExecution; void contextLoads() { // 调用执行其中想要调用的方法 List list = fileApiExecution.getFileList("jhadmin", "$HOME"); System.out.println(list); } } ``` ## 2.2 Spring ### 2.2.1 安装 建议在您的项目中使用Jhinno OpenAPI SDK for Java的方法是从Maven中使用它。: #### 方法一:通过Maven仓库安装 > 添加仓库地址(改方案为备用方案,后续会上传至Maven中央仓库,目前不影响正常使用) ```xml jhinno-nexus jhinno-nexus https://jhinno-nexus.yuchat.top/repository/maven-releases ``` #### 方法二:通过命令将jar包导入本地Maven仓库 ```shell # SDK Client的jar包的导入,其中为jar的路径,为jar包路径 mvn org.apache.maven.plugins:maven-install-plugin:3.1.1:install-file -Dfile="/jhinno-openapi-java-sdk-1.0.0.jar" -Dsources="/jhinno-openapi-java-sdk-1.0.0-sources.jar" # 例如 mvn org.apache.maven.plugins:maven-install-plugin:3.1.1:install-file -Dfile="E:/下载/jhinno-openapi-java-sdk-1.0.0.jar" -Dsources="E:/下载/jhinno-openapi-java-sdk-1.0.0-sources.jar" ``` > 注: > - jhinno-openapi-java-sdk-x.x.x.jar 为SDK的jar包。 > - jhinno-openapi-java-sdk-x.x.x-sources.jar 为源码包,添加可方便查看SDK代码的注释。 ### 2.2.2 引入`jhinno-openapi-java-sdk`坐标 ```xml com.jhinno jhinno-openapi-java-sdk 1.0.1 ``` ### 2.2.3 配置 spring.xml添加以下内容 ```xml ``` ### 2.2.4 使用 在`com.jhinno.sdk.openapi.api`包下面对应`app`、`data`、`file`、`job`、`organization`这几个子包,分别代表景行`Appform` 的应用、作业数据、文件、作业操作、组织等接口资源。开发者只需要使用接口的执行器(`JHxxxApiExecution` )即可使用资源,如:`JHAppApiExecution` ```java public class DemoUserSDK { /** * 注入要调用的执行器 */ @Autowired private JHFileApiExecution fileApiExecution; void contextLoads() { // 调用执行其中想要调用的方法 List list = fileApiExecution.getFileList("jhadmin", "$HOME"); System.out.println(list); } } ``` ## 2.3 普通java项目 ### 2.3.1 安装 - 同 2.2.1 安装一样 ### 2.3.2 引入`jhinno-openapi-java-sdk`坐标 ```xml com.jhinno jhinno-openapi-java-sdk 1.0.1 ``` ### 2.3.3 使用 在`com.jhinno.sdk.openapi.api`包下面对应`app`、`data`、`file`、`job`、`organization`这几个子包,分别代表景行`Appform` 的应用、作业数据、文件、作业操作、组织等接口资源。开发者只需要使用接口的执行器(`JHxxxApiExecution` )即可使用资源,如:`JHAppApiExecution` 具体的使用步骤如下: 1. 创建一个`JHApiClient`客户端,此为HTTP连接池,为确保资源浪费,需保证全局唯一,每次创建执行器都使用个客户端。 2. 创建接口的执行器,即:`JHxxxApiExecution`,如:`JHAppApiExecution`。 3. 调用接口执行器的方法,使用景行接口资源,如下代码片段。 ```java public class DemoUserSDK { /** * JHApiClient 是一个HTTP连接池,开发者需要复用 * 其中https://192.168.87.25/appform为景行API服务的地址 * 注意: JHApiClient为内置的http连接池,系统只需要初始化一份即可(单例调用)。 */ private static final JHApiClient client = JHApiClient.build("https://192.168.87.25/appform"); public static void main(String[] args) { // 初始化一个调用调用景行会话服务接口执行器 JHAppApiExecution jhAppApiExecution = new JHAppApiExecution(client); // 调用启动会话的接口 AppStartedInfo appStartedInfo = jhAppApiExecution.desktopStart("jhadmin", "linux_desktop", new AppStartRequest()); // 打印接口的调用结果 System.out.println(appStartedInfo); } } ``` # 3. 支持SDK的扩展 如果是基于景行定制的接口,本SDK没有包含这些方法,因此您可以基于`JHApiExecution`快速进行扩展,具体的扩展步骤如下: - 新建需要扩展的执行器命名为`JHxxxApiExecution`,并继承`JHApiExecution`; - 编写基于接口调用的方法; 父类提供了封装好的`get`、`post`、`put`、`delete`方法,可以直接使用,而不考虑token的问题 ```java /** * 注意:一下代码为伪代码,需要根据实际的情况进行修改,其示例代码可参照SDK中JHApiExecution子类的实现 */ public class JHAppApiExecution extends JHApiExecution { /** * 获取一个执行器的实例 * * @param jhApiClient 请求的客户端 */ public JHAppApiExecution(JHApiClient jhApiClient) { super(jhApiClient); } public XxxDTO getXXXX(String username, String demoParams) { return get("/demo/path", username, new TypeReference>() { }); } } ``` # 4. 构建 一旦您检出代码,就可以使用Maven构建它。使用以下命令进行构建: ```shell mvn clean package -DskipTests -P product ``` # 5. 代码贡献 - 代码必须格式化,使用IDEA自带的格式即可; - 请求路径必须放在一个单独的const类中统一维护,具体可参考现有代码提交; - 封装新的接口是需要继承`JHApiExecution`,调用父类的辅助方法辅助封装; # 6. 作者 - [yanlongqi](https://github.com/yanlongqi) # 7. 支持 - 电话(同微信):18794888087 - 邮箱:lqyan@jhinno.com