easyopen自定义服务器项目

关于easyopen的介绍请参考:easyopen

easyopen-server是已经搭建好的服务器项目,可拿来立即使用。为了加深对easyopen的了解,我们自己来搭建一个,步骤非常简单,这里就使用springmvc框架搭建,步骤如下:

创建项目

  • 新建工程

eclipse新建一个springmvc工程,工程名为myopen,建好后的工程结构如下:

1

  • 添加依赖

打开pom.xml添加easyopen依赖

<dependency>
	<groupId>com.gitee.easyopen</groupId>
	<artifactId>easyopen-core</artifactId>
	<version>1.0.0-SNAPSHOT</version>
</dependency>
  • 添加api入口

新建一个IndexController并继承ApiController

@Controller
@RequestMapping("/project/api")
public class IndexController extends ApiController {

}

其中头部@RequestMapping("/project/api")注解用来定义接口的URL,这里接口的url为:http://localhost:8080/myopen/project/api 并且为POST方式。

  • 配置秘钥

因为接口要提供给客户端,需要为客户端分配一个appKey和secret。配置的地方也在IndexController内,直接重写initApiConfig(ApiConfig apiConfig)方法。完整的代码如下

@Controller
@RequestMapping("/project/api")
public class IndexController extends ApiController {

    @Override
    protected void initApiConfig(ApiConfig apiConfig) {
        Map<String, String> appSecretStore = new HashMap<String, String>();
        appSecretStore.put("test", "123456");
        /*
         * 添加秘钥配置,map中存放秘钥信息,key对应appKey,value对应secret
         * @param appSecretStore
         */
        apiConfig.addAppSecret(appSecretStore);
    }
    
}

到这里easyopen已经搭建完成了,接下来是编写业务代码。

编写业务类

  • 新建一个java类名为HelloworldApi,并加上@ApiService注解

加上@ApiService注解后这个类就具有了提供接口的能力。

@ApiService
public class HelloWorldApi {

}

  • 在类中添加一个方法
@Api(name = "hello")
public String helloworld() {
    return "hello world";
}

这个方法很简单,就返回了一个字符串,方法被@Api标记,表示对应的接口,name是接口名。

到此,一个完整的接口就写完了,接下来是在sdk工程里写测试用例:

编写测试用例

  • 新建Request请求类
public class HelloReq extends BaseNoParamReq {

    public HelloReq(String name) {
        super(name);
    }

    @Override
    public Class<?> buildRespClass() {
        return HelloResp.class;
    }

}
  • 新建Response响应类
public class HelloResp extends BaseResp<String> {

}

BaseResp<T>的泛型参数指定返回体类型,这里指定String

  • 编写单元测试
public class HelloTest extends TestCase {

    String url = "http://localhost:8080/myopen/project/api";
    String appKey = "test";
    String secret = "123456";
    // 创建一个实例即可
    OpenClient client = new OpenClient(url, appKey, secret);

    @Test
    public void testGet() throws Exception {
        HelloReq req = new HelloReq("hello"); // hello对应@Api中的name属性,即接口名称

        HelloResp result = client.request(req); // 发送请求
        if (result.isSuccess()) {
            String resp = result.getData();
            System.out.println(resp); // 返回hello world
        } else {
            throw new RuntimeException(result.getMsg());
        }

    }

}

这样,一个完整的接口就写完了。

猜你喜欢

转载自my.oschina.net/u/3658366/blog/1609602