关于easyopen的介绍请参考:easyopen
easyopen-server是已经搭建好的服务器项目,可拿来立即使用。为了加深对easyopen的了解,我们自己来搭建一个,步骤非常简单,这里就使用springmvc框架搭建,步骤如下:
创建项目
- 新建工程
eclipse新建一个springmvc工程,工程名为myopen,建好后的工程结构如下:
- 添加依赖
打开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());
}
}
}
这样,一个完整的接口就写完了。