1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/aibton-aibton-framework

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Aibton-framework

Aibton-framework — это фреймворк, который регламентирует процесс разработки. Система состоит из следующих модулей:

  • aibton-core — ядро фреймворка, которое включает в себя инструменты и основные классы.

Описание функций

Фреймворк подходит для асинхронных AJAX-запросов, но не подходит для серверного управления маршрутизацией страниц. Основные функции:

  1. Унифицированный вызов через шлюз.
  2. Единая структура написания сервисов, унифицированные форматы запросов и ответов.
  3. Реализация проверки параметров на основе аннотаций.
  4. Реализация контроля доступа на основе API.
  5. Реализация унифицированной обработки исключений системы.
  6. Реализация основных инструментов.

В случае возникновения исключения во фреймворке используется пользовательское исключение RequestException. Обычно оно генерирует информацию об исключении в виде перечисления:

public interface IEnum {
    /**
     * Получение значения кода.
     * @return
     */
    String getCode();

    /**
     * Получение значения.
     * @return
     */
    String getValue();

    /**
     * Получение группы.
     * @return
     */
    String getGroup();

    /**
     * Получение кода перечисления.
     * @param value значение.
     * @param group группа.
     * @return код.
     */
    String getCode(String value, String group);

    /**
     * Получение значения перечисления.
     * @param code код.
     * @param group группа.
     * @return значение.
     */
    String getValue(String code, String group);

    default String getName() {
        return ((Enum) this).name();
    }
}

Соответствующие значения кода и сообщения находятся в классе AibtonConstantKey:

public class AibtonConstantKey {

    /**
     * Код нормального ответа системы.
     */
    public static final String RESPONSE_000000 = "000000";

    /**
     * Код отсутствия у пользователя прав доступа.
     */
    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请求调用异常";

    /**
     * Значение токена.
     */
    public static final String TOKEN = "token";
}

Начало использования

Базовая конфигурация:

  • На основе аннотаций:
@Configuration
public class AibtonConfig {

    @Bean
    public IApiEngine getIApiEngine() {
        return new ApiEngineImpl();
    }

    @Bean
    public ApiInitProcessor getApiInitProcessor() {
        return new ApiInitProcessor();
    }
}

Если вы используете 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请求成功啦");
    }
}

Написание контроллера шлюза:

@RestController
public 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;
    }
}

Это основные функции.

Проверка параметров

Все входные и выходные параметры должны наследовать от базового класса фреймворка. Если это запрос, наследуйте от BaseRequest, если это ответ, наследуйте от BaseResponse.

На данный момент фреймворк реализует три вида проверки параметров:

  • @NotEmpty — строка не может быть NULL или пустой.
  • @NotNull — объект не может быть NULL.
  • @Length — ограничение длины строки.

Как только в запросе есть аннотация, фреймворк автоматически проверяет параметры.

Контроль доступа API

Пользователи могут настраивать собственные права доступа для работы с соответствующими API. Для этого используется аннотация @Auth. Необходимо установить список разрешений пользователя при каждом доступе к шлюзу. Фреймворк сохраняет разрешения в ThreadLocal.

ApiThreadLocalUtils.setAuthDatas(null);//null — это ваш список разрешений
``` спрингбут демо [айттон фреймворк демо](https://gitee.com/aibton/aibton-framework-demo)

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Aibton — это фреймворк для разработки со строгим соблюдением процессов. Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/aibton-aibton-framework.git
git@gitlife.ru:oschina-mirror/aibton-aibton-framework.git
oschina-mirror
aibton-aibton-framework
aibton-aibton-framework
master