easyopen自定义服务器项目

2018-01-20 11:11:24来源:oschina作者:tanghc人点击

分享

关于easyopen的介绍请参考:easyopen


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


创建项目
新建工程

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


1


添加依赖

打开pom.xml添加easyopen依赖



com.gitee.easyopen
easyopen-core
1.0.0-SNAPSHOT
添加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 appSecretStore = new HashMap();
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 {
}

BaseResp的泛型参数指定返回体类型,这里指定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());
}
}
}

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

微信扫一扫

第七城市微信公众平台