easyopen自定義服務器項目

關於easyopen的介紹請參考:easyopenjava

easyopen-server是已經搭建好的服務器項目,可拿來當即使用。爲了加深對easyopen的瞭解,咱們本身來搭建一個,步驟很是簡單,這裏就使用springmvc框架搭建,步驟以下:git

建立項目

  • 新建工程

eclipse新建一個springmvc工程,工程名爲myopen,建好後的工程結構以下:spring

1

  • 添加依賴

打開pom.xml添加easyopen依賴api

<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方式。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已經搭建完成了,接下來是編寫業務代碼。框架

編寫業務類

  • 新建一個java類名爲HelloworldApi,並加上@ApiService註解

加上@ApiService註解後這個類就具備了提供接口的能力。eclipse

@ApiService
public class HelloWorldApi {

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

這個方法很簡單,就返回了一個字符串,方法被@Api標記,表示對應的接口,name是接口名。ide

到此,一個完整的接口就寫完了,接下來是在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());
        }

    }

}

這樣,一個完整的接口就寫完了。

相關文章
相關標籤/搜索