关于easyopen的介绍请参考:easyopenjava
easyopen-server是已经搭建好的服务器项目,可拿来当即使用。为了加深对easyopen的了解,咱们本身来搭建一个,步骤很是简单,这里就使用springmvc框架搭建,步骤以下:git
eclipse新建一个springmvc工程,工程名为myopen,建好后的工程结构以下:spring
打开pom.xml添加easyopen依赖api
<dependency> <groupId>com.gitee.easyopen</groupId> <artifactId>easyopen-core</artifactId> <version>1.0.0-SNAPSHOT</version> </dependency>
新建一个IndexController并继承ApiController服务器
@Controller @RequestMapping("/project/api") public class IndexController extends ApiController { }
其中头部@RequestMapping("/project/api")注解用来定义接口的URL,这里接口的url为:http://localhost:8080/myopen/project/api 而且为POST方式。mvc
由于接口要提供给客户端,须要为客户端分配一个appKey和secret。配置的地方也在IndexController内,直接重写initApiConfig(ApiConfig apiConfig)方法。完整的代码以下app
@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已经搭建完成了,接下来是编写业务代码。框架
加上@ApiService注解后这个类就具备了提供接口的能力。eclipse
@ApiService public class HelloWorldApi { }
@Api(name = "hello") public String helloworld() { return "hello world"; }
这个方法很简单,就返回了一个字符串,方法被@Api标记,表示对应的接口,name是接口名。ide
到此,一个完整的接口就写完了,接下来是在sdk工程里写测试用例:
public class HelloReq extends BaseNoParamReq { public HelloReq(String name) { super(name); } @Override public Class<?> buildRespClass() { return HelloResp.class; } }
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()); } } }
这样,一个完整的接口就写完了。