• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

    aibton-framework: aibton 是一款规范开发流程的框架

    原作者: [db:作者] 来自: 网络 收藏 邀请

    开源软件名称:

    aibton-framework

    开源软件地址:

    https://gitee.com/aibton/aibton-framework

    开源软件介绍:

    #aibton-framework

    • aibton-framework是一款规范开发流程的框架,系统核心分为如下模块
      1. aibton-core 框架核心,主要包括运行的工具类和主要的基类

    #具体功能描述

    • 该框架适用于ajax异步请求调用,不适用于服务器需要控制页面路由
    • 核心功能:
      1. 统一的网关调用
      2. 统一的服务层写法,request、response格式统一
      3. 实现了基于注解的参数校验
      4. 实现了基于API的权限控制
      5. 实现了系统的统一异常处理
      6. 基本工具类的实现
    • 框架异常采用RequestException自定义异常抛出用户可以自己按照框架定义解析异常一般情况下抛出枚举信息如下定义
    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>
    • 基本功能使用例子--只使用基本api访问功能
    @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请求成功啦");    }}
    • 网关Controller写法
    @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权限使用

    • 描述用户可以自定义用户权限来操作对应的API
    • 使用
    @Auth(auth = {"BASE","ADMIN"})//使用在API类名上

    需要在每次访问网关时候设置一下用户拥有的权限列表,框架把权限值放在ThreadLocal中的

    ApiThreadLocalUtils.setAuthDatas(null);//null就是你的权限列表

    按照上面配置好,框架自动校验,以上则更新到这里啦

    文档持续完善中。。。。

    springboot demo aibton-framework-demo


    鲜花

    握手

    雷人

    路过

    鸡蛋
    该文章已有0人参与评论

    请发表评论

    全部评论

    专题导读
    热门推荐
    阅读排行榜

    扫描微信二维码

    查看手机版网站

    随时了解更新最新资讯

    139-2527-9053

    在线客服(服务时间 9:00~18:00)

    在线QQ客服
    地址:深圳市南山区西丽大学城创智工业园
    电邮:jeky_zhao#qq.com
    移动电话:139-2527-9053

    Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap