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)
You can comment after Login
Inappropriate content may be displayed here and will not be shown on the page. You can check and modify it through the relevant editing function
If you confirm that the content does not involve inappropriate language/advertisement redirection/violence/vulgar pornography/infringement/piracy/false/insignificant or illegal content related to national laws and regulations, you can click submit to make an appeal, and we will handle it as soon as possible.
Comments ( 0 )