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());
        }

    }

}

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

相关文章
相关标签/搜索