magic-api 是一个基于Java的接口快速开发框架,编写接口将通过magic-api提供的UI界面完成,自动映射为HTTP接口,无需定义Controller、Service、Dao、Mapper、XML、VO等Java对象即可完成常见的HTTP API接口开发
本文针对magic-api的以下特性进行测试验证
- 直接调用JAVA类的静态方法
- 通过spring bean调用JAVA类的实例方法
- 在spring bean中调用magic-api接口
- 在spring bean中获取动态数据源信息及web配置文件信息
在magic-api中可以直接调用JAVA类的静态方法
需要将JAVA类注册为Spring Bean,否则会报:magic-api object is not an instance of declaring class
即在MagicAPIConfiguration中添加如下代码:
@Configuration
public class MagicAPIConfiguration {
....
@Bean
public HiService getHiService(){
return new HiService();
}
....
}
单表数据查询
可以直接使用在spring 配置文件中配置的数据源,进行数据查询操作
此magic-api在在java bean中调用magic-api中被调用
在java bean中,可以通过MagicAPIService 实例调用 通过magic-api界面配置的API接口
在java bean中,可以通过MagicDynamicDataSource实例,获取配置的数据源信息,然后拿到指定数据源对应的JdbcTemplate执行SQL语句
在java bean中,可以通过MagicAPIConfiguration实例获取配置信息,在MagicAPIConfiguration可以根据需要读取指定的配置信息。
即在MagicAPIConfiguration中添加如下代码:
@Configuration
public class MagicAPIConfiguration {
....
private int serverPort;
@Value("${server.port}")
public void setServerPort(int port) {
this.serverPort = port;
}
public int getServerPort(){
return serverPort;
}
...
}
测试使用的源码
package org.magic.api.service;
import com.google.common.collect.Maps;
import org.springframework.beans.factory.annotation.Autowired;
import org.ssssssss.example.configuration.MagicAPIConfiguration;
import org.ssssssss.magicapi.core.model.JsonBean;
import org.ssssssss.magicapi.core.service.MagicAPIService;
import org.ssssssss.magicapi.datasource.model.MagicDynamicDataSource;
import org.ssssssss.magicapi.datasource.model.MagicDynamicDataSource.DataSourceNode;
import java.util.List;
import java.util.Map;
public class HiService {
@Autowired
MagicAPIService service;
@Autowired
MagicDynamicDataSource dynamicDataSource;
@Autowired
MagicAPIConfiguration apiConf;
public static String hi(String name) {
System.out.println(name);
return String.format("hi %s", name);
}
public String hello(String name){
return String.format("hello %s",name);
}
public List callAPI(){
Object res = service.call("GET","/test/query", Maps.newHashMap());
return (List) ((JsonBean) res).getData();
}
public List


