在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:aibton-framework开源软件地址:https://gitee.com/aibton/aibton-framework开源软件介绍:#aibton-framework
#具体功能描述
public interface IEnum { /** * 获取code值 * @return */ String getCode(); /** * 获取value值 * @return */ String getValue(); /** * 获取分组 * @return */ String getGroup(); /** * 获得枚举编码 * @return */ String getCode(String value, String group); /** * 获得枚举值 * @return */ String getValue(String code, String group); default String getName() { return ((Enum) this).name(); }} 对应的Code值和msg值在AibtonConstantKey.class中如下: public class AibtonConstantKey { /** * 系统正常返回code */ public static final String RESPONSE_000000 = "000000"; /** * 用户没有权限访问code */ public static final String RESPONSE_400000 = "400000"; /** * 系统内部异常 */ public static final String EXCEPTION_OF_MESSAGE = "系统内部异常"; /** * SYSTEM */ public static final String SYSTEM = "system"; /** * JSON对象转换异常 */ public static final String SYSTEM_JACK_SON_ERROR = "JSON对象转换异常"; /** * 用户没有权限访问该接口 */ public static final String USER_NOT_AUTH_ERROR = "用户没有权限访问该接口"; /** * HTTP请求调用异常 */ public static final String HTTP_ERROR = "HTTP请求调用异常"; /** * token值 */ public static final String TOKEN = "token";} ###开始使用
@Configurationpublic class AibtonConfig { @Bean public IApiEngine getIApiEngine() { return new ApiEngineImpl(); } @Bean public ApiInitProcessor getApiInitProcessor() { return new ApiInitProcessor(); }} - 如果你使用xml,改成对应的xml配置即可 maven依赖 <dependency> <groupId>com.aibton</groupId> <artifactId>aibton-core</artifactId> <version>1.0.0</version> </dependency>
@Service@Transactional@Api(value = "systemInfo")@Auth(auth = { "BASE", "ADMIN" })public class SystemInfoApi extends AbstractBaseApi<BaseRequest, SystemInfoResponse> { @Override public BaseResponse excute(BaseRequest request, SystemInfoResponse response) { return ResponseUtils.getData(true, "systemInfo请求成功啦"); }}
@RestControllerpublic class GatewayController { private static final Logger LOGGER = LoggerFactory.getLogger(GatewayController.class); @Autowired private IApiEngine iApiEngine; @RequestMapping(value = "gateway") public Object doExcute(HttpServletRequest request, String api, String data) { AssertUtils.isNotEmpty(LOGGER, api, ConstantKey.API_NOT_NULL); AssertUtils.isNotEmpty(LOGGER, data, ConstantKey.API_DATA_NOT_NULL); EngineContext engineContext = new EngineContext(); engineContext.setApiUrl(api); engineContext.setRequestData(data); engineContext.setRequest(request); BaseResponse baseResponse = iApiEngine.run(engineContext); return baseResponse; }} 以上则是最基本的功能的使用 参数校验功能写法public class SystemInfoResponse extends BaseResponse { @NotEmpty private String desc; public String getDesc() { return desc; } public void setDesc(String desc) { this.desc = desc; }} 所有的入参和返回参数都需要继承框架一个基类,如果是Request则继承BaseRequest,如果是Response则继承BaseResponse 框架现在实现了三个参数校验 @NotEmpty 字符串不能为NULL或者""@NotNull 对象不能为NULL@Length 字符串的长度限制 只要在request中参数有上面的注解,框架就会自动校验 API权限使用
@Auth(auth = {"BASE","ADMIN"})//使用在API类名上 需要在每次访问网关时候设置一下用户拥有的权限列表,框架把权限值放在ThreadLocal中的 ApiThreadLocalUtils.setAuthDatas(null);//null就是你的权限列表 按照上面配置好,框架自动校验,以上则更新到这里啦 文档持续完善中。。。。 springboot demo aibton-framework-demo |
请发表评论