com.rnkrsoft.platform:interface-platform-generator

Rnkrsoft Interface Platform Generator


License
Intel

Documentation

接口平台客户端生成物生成器

Maven central

<dependency>
    <groupId>com.rnkrsoft.platform</groupId>
    <artifactId>interface-platform-generator</artifactId>
    <version>最新版本号</version>
</dependency>

在开发的API项目中,任意新建一个内调用如下代码,则可生成安卓平台和iOS平台的生成物。

package com.rnkrsoft.platform.generator;

import org.junit.Test;


/**
 * Created by rnkrsoft.com on 2018/10/12.
 */
public class InterfacePlatformGeneratorTest {

    @Test
    public void testGenerate() throws Exception {
        InterfacePlatformGenerator.generate(DeviceType.Android, "com.rnkrsoft.platform.demo", "./target", "com.rnkrsoft.platform.service","com.rnkrsoft.platform.service.DemoService");
        InterfacePlatformGenerator.generate(DeviceType.iOS, "com.rnkrsoft.platform.demo", "./target", "com.rnkrsoft.platform.service","com.rnkrsoft.platform.service.DemoService");
    }
}

生成后将InterfacePlatform4j.zip复制解压到安卓项目中,使用如下代码

ServiceFactory serviceFactory = new ServiceFactory();
    serviceFactory.settingConfigure(false, "gateway-configure.xxx.com", 80, "/configure");
//设置接口连接器实现

    serviceFactory.getServiceConfigure().setInterfaceConnectorClass(HttpInterfaceConnector.class);
    //设置远程配置获取失败后的退回接口服务器信息
    serviceFactory.settingFallback("test-channel", false, "localhost", 80, "/api");
    serviceFactory.settingFallback("public", false, "localhost", 80, "/api");
    //如果不使用TOKEN作为密码时的固定密码
    serviceFactory.setPassword("1234567890123456");
    //加密时或者解密时的秘钥向量 默认配置,在configure无法成功获取时使用
    serviceFactory.setKeyVector("1234567890654321");
	//用户版本号
    serviceFactory.setAppVersion("4.0.0");
	//注册定位信息提供者
    serviceFactory.registerLocationProvider(new LocationProvider() {
        @Override
        public void locate(LocationStore locationStore) {
            locationStore.refreshLocation(new Location(1, 2));
        }
    });
    //是否自动获取定位信息
    serviceFactory.getServiceConfigure().setAutoLocate(true);
    serviceFactory.getServiceConfigure().setMacAddress("44-45-53-54-00-00");
    //用户标识
    serviceFactory.getServiceConfigure().setUid("sssss");
    serviceFactory.getServiceConfigure().setUic("2542563b-a153-48af-84d4-d40542c8bc3b");
	//向客户端中注册用户服务类, 安卓环境下只能使用该方法注册服务
    serviceFactory.addServiceClasses(UserService.class);
    //初始化
    //serviceFactory.init();
    //如果需要在安卓平台上处理初始化错误则需要调用另一个init
    serviceFactory.init(true, new AsyncHandler() {
        @Override
        public void fail(String code, String desc, String detail) {
            System.out.println(desc);
        }

        @Override
        public void success(Object response) {
            System.out.println(response);
        }
    });

    //获取业务的门面类
    HelloService helloService = ServiceFactory.get(HelloService.class);
	
	//调用hello方法,就仿佛服务在本地一样使用
AsyncTask asyncTask = helloService.hello(new HelloRequest(), new AsyncHandler(){
    @Override
        public void fail(String code, String desc, String detail) {
            System.out.println(desc);
            //发生通信层错误在这里处理
        }

        @Override
        public void success(Object response) {
            System.out.println(response);
            //业务体返回,其中的rspCode表示业务返回码,0000代表成功,其余为失败,更多的为使用者自己定义
        }
});