關於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()); } } }
這樣,一個完整的接口就寫完了。