Aibton-framework
Aibton-framework — это фреймворк, который регламентирует процесс разработки. Система состоит из следующих модулей:
Описание функций
Фреймворк подходит для асинхронных AJAX-запросов, но не подходит для серверного управления маршрутизацией страниц. Основные функции:
В случае возникновения исключения во фреймворке используется пользовательское исключение 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.
На данный момент фреймворк реализует три вида проверки параметров:
Как только в запросе есть аннотация, фреймворк автоматически проверяет параметры.
Контроль доступа API
Пользователи могут настраивать собственные права доступа для работы с соответствующими API. Для этого используется аннотация @Auth. Необходимо установить список разрешений пользователя при каждом доступе к шлюзу. Фреймворк сохраняет разрешения в ThreadLocal.
ApiThreadLocalUtils.setAuthDatas(null);//null — это ваш список разрешений
``` спрингбут демо [айттон фреймворк демо](https://gitee.com/aibton/aibton-framework-demo)
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )