基础类命名调整

This commit is contained in:
tianliyong 2022-11-05 18:03:19 +08:00
parent 04f0fc477c
commit 0a8bc6daf3
10 changed files with 141 additions and 141 deletions

View File

@ -7,9 +7,9 @@ import cn.axzo.framework.domain.web.result.ApiListResult;
import cn.axzo.framework.domain.web.result.ApiPageResult;
import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.framework.context.Placeholders;
import cn.axzo.framework.web.http.ApiEntity;
import cn.axzo.framework.web.http.ApiListEntity;
import cn.axzo.framework.web.http.ApiPageEntity;
import cn.axzo.framework.web.http.ApiResponse;
import cn.axzo.framework.web.http.ApiListResponse;
import cn.axzo.framework.web.http.ApiPageResponse;
import com.fasterxml.classmate.TypeResolver;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -124,35 +124,35 @@ public class SwaggerAutoConfiguration {
);
}
@ConditionalOnClass(name = "cn.axzo.framework.web.http.ApiEntity")
@ConditionalOnClass(name = "cn.axzo.framework.web.http.ApiResponse")
@Bean
public AlternateTypeRule apiEntityAlternateTypeRule(TypeResolver typeResolver) {
public AlternateTypeRule apiResponseAlternateTypeRule(TypeResolver typeResolver) {
return AlternateTypeRules.newRule(
typeResolver.resolve(ApiEntity.class, WildcardType.class),
typeResolver.resolve(ApiResponse.class, WildcardType.class),
typeResolver.resolve(ApiResult.class, WildcardType.class)
);
}
@ConditionalOnClass(name = "cn.axzo.framework.web.http.ApiEntity")
@ConditionalOnClass(name = "cn.axzo.framework.web.http.ApiResponse")
@Bean
public AlternateTypeRule callableApiEntityAlternateTypeRule(TypeResolver typeResolver) {
public AlternateTypeRule callableApiResponseAlternateTypeRule(TypeResolver typeResolver) {
return newRule(
typeResolver.resolve(Callable.class, typeResolver.resolve(ApiEntity.class, WildcardType.class)),
typeResolver.resolve(Callable.class, typeResolver.resolve(ApiResponse.class, WildcardType.class)),
typeResolver.resolve(ApiResult.class, WildcardType.class)
);
}
@ConditionalOnClass(name = "cn.axzo.framework.web.http.ApiListEntity")
@ConditionalOnClass(name = "cn.axzo.framework.web.http.ApiListResponse")
@Bean
public AlternateTypeRule apiListEntityAlternateTypeRule(TypeResolver typeResolver) {
return newRule(typeResolver.resolve(ApiListEntity.class, WildcardType.class),
public AlternateTypeRule apiListResponseAlternateTypeRule(TypeResolver typeResolver) {
return newRule(typeResolver.resolve(ApiListResponse.class, WildcardType.class),
typeResolver.resolve(ApiListResult.class, WildcardType.class));
}
@ConditionalOnClass(name = "cn.axzo.framework.web.http.ApiPageEntity")
@ConditionalOnClass(name = "cn.axzo.framework.web.http.ApiPageResponse")
@Bean
public AlternateTypeRule apiPageEntityAlternateTypeRule(TypeResolver typeResolver) {
return newRule(typeResolver.resolve(ApiPageEntity.class, WildcardType.class),
public AlternateTypeRule apiPageResponseAlternateTypeRule(TypeResolver typeResolver) {
return newRule(typeResolver.resolve(ApiPageResponse.class, WildcardType.class),
typeResolver.resolve(ApiPageResult.class, WildcardType.class));
}

View File

@ -18,7 +18,7 @@ import java.util.Set;
*/
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public abstract class ApiCoreEntity<E, R extends ApiCoreResult<E>> extends HttpEntity<R> {
public abstract class ApiCoreResponse<E, R extends ApiCoreResult<E>> extends HttpEntity<R> {
private final Object status;
@ -29,7 +29,7 @@ public abstract class ApiCoreEntity<E, R extends ApiCoreResult<E>> extends HttpE
* @param headers the entity headers
* @param status the status code
*/
public ApiCoreEntity(R body, MultiValueMap<String, String> headers, HttpStatus status) {
public ApiCoreResponse(R body, MultiValueMap<String, String> headers, HttpStatus status) {
super(body, headers);
Assert.notNull(status, "HttpStatus must not be null");
this.status = status;

View File

@ -16,7 +16,7 @@ import java.util.List;
* @author liyong.tian
* @since 2017/11/14 下午8:00
*/
public class ApiListEntity<E> extends ApiCoreEntity<List<E>, ApiListResult<E>> {
public class ApiListResponse<E> extends ApiCoreResponse<List<E>, ApiListResult<E>> {
/**
* Create a new {@code HttpEntity} with the given body, headers, and status code.
@ -25,7 +25,7 @@ public class ApiListEntity<E> extends ApiCoreEntity<List<E>, ApiListResult<E>> {
* @param headers the entity headers
* @param status the status code
*/
ApiListEntity(ApiListResult<E> body, MultiValueMap<String, String> headers, HttpStatus status) {
ApiListResponse(ApiListResult<E> body, MultiValueMap<String, String> headers, HttpStatus status) {
super(body, headers, status);
}
@ -35,7 +35,7 @@ public class ApiListEntity<E> extends ApiCoreEntity<List<E>, ApiListResult<E>> {
* @return the created builder
* @since 4.1
*/
public static <E> ApiListEntity<E> ok() {
public static <E> ApiListResponse<E> ok() {
return status(HttpStatus.OK).ok();
}
@ -46,20 +46,20 @@ public class ApiListEntity<E> extends ApiCoreEntity<List<E>, ApiListResult<E>> {
* @return the created {@code ResponseEntity}
* @since 4.1
*/
public static <E> ApiListEntity<E> ok(List<E> data) {
public static <E> ApiListResponse<E> ok(List<E> data) {
return status(HttpStatus.OK).ok(data);
}
public static ApiListEntityBuilder status(@Nonnull HttpStatus status) {
public static ApiListResponseBuilder status(@Nonnull HttpStatus status) {
Assert.notNull(status, "HttpStatus must not be null");
return new ApiListEntityBuilder(status);
return new ApiListResponseBuilder(status);
}
public static ApiListEntityBuilder header(String headerName, String... headerValues) {
public static ApiListResponseBuilder header(String headerName, String... headerValues) {
return status(HttpStatus.OK).header(headerName, headerValues);
}
public static ApiListEntityBuilder headers(HttpHeaders headers) {
public static ApiListResponseBuilder headers(HttpHeaders headers) {
return status(HttpStatus.OK).headers(headers);
}
@ -71,11 +71,11 @@ public class ApiListEntity<E> extends ApiCoreEntity<List<E>, ApiListResult<E>> {
* @return the created builder
* @since 4.1
*/
public static ApiListEntityBuilder created(URI location) {
public static ApiListResponseBuilder created(URI location) {
return status(HttpStatus.CREATED).location(location);
}
public static ApiListEntityBuilder created(String location) {
public static ApiListResponseBuilder created(String location) {
return status(HttpStatus.CREATED).location(Nets.uri(location));
}
@ -85,7 +85,7 @@ public class ApiListEntity<E> extends ApiCoreEntity<List<E>, ApiListResult<E>> {
* @return the created builder
* @since 4.1
*/
public static ApiListEntityBuilder accepted() {
public static ApiListResponseBuilder accepted() {
return status(HttpStatus.ACCEPTED);
}
@ -95,7 +95,7 @@ public class ApiListEntity<E> extends ApiCoreEntity<List<E>, ApiListResult<E>> {
* @return the created builder
* @since 4.1
*/
public static ApiListEntityBuilder badRequest() {
public static ApiListResponseBuilder badRequest() {
return status(HttpStatus.BAD_REQUEST);
}
@ -105,58 +105,58 @@ public class ApiListEntity<E> extends ApiCoreEntity<List<E>, ApiListResult<E>> {
* @return the created builder
* @since 4.1
*/
public static ApiListEntityBuilder notFound() {
public static ApiListResponseBuilder notFound() {
return status(HttpStatus.NOT_FOUND);
}
public static class ApiListEntityBuilder extends AbstractBodySetter<ApiListEntityBuilder> {
public static class ApiListResponseBuilder extends AbstractBodySetter<ApiListResponseBuilder> {
private ApiListEntityBuilder(HttpStatus status) {
private ApiListResponseBuilder(HttpStatus status) {
super(status);
}
public <E> ApiListEntity<E> ok() {
public <E> ApiListResponse<E> ok() {
return wrapper(ApiListResult.ok());
}
public <E> ApiListEntity<E> ok(List<E> data) {
public <E> ApiListResponse<E> ok(List<E> data) {
return wrapper(ApiListResult.ok(data));
}
public <E> ApiListEntity<E> err(IRespCode code) {
public <E> ApiListResponse<E> err(IRespCode code) {
return wrapper(ApiListResult.err(code));
}
public <E> ApiListEntity<E> err(IRespCode code, String message) {
public <E> ApiListResponse<E> err(IRespCode code, String message) {
return wrapper(ApiListResult.err(code, message));
}
public <E> ApiListEntity<E> err(String message) {
public <E> ApiListResponse<E> err(String message) {
return wrapper(ApiListResult.err(message));
}
public <E> ApiListEntity<E> err(IRespCode code, List<E> data) {
public <E> ApiListResponse<E> err(IRespCode code, List<E> data) {
return wrapper(ApiListResult.err(code, data));
}
public <E> ApiListEntity<E> err(String code, String message) {
public <E> ApiListResponse<E> err(String code, String message) {
return wrapper(ApiListResult.err(code, message));
}
public <E> ApiListEntity<E> build(IRespCode code) {
public <E> ApiListResponse<E> build(IRespCode code) {
return wrapper(ApiListResult.build(code));
}
public <E> ApiListEntity<E> build(IRespCode code, List<E> data) {
public <E> ApiListResponse<E> build(IRespCode code, List<E> data) {
return wrapper(ApiListResult.build(code, data));
}
public <E> ApiListEntity<E> build(String code, String message, List<E> data) {
public <E> ApiListResponse<E> build(String code, String message, List<E> data) {
return wrapper(ApiListResult.build(code, message, data));
}
private <E> ApiListEntity<E> wrapper(ApiListResult<E> result) {
return new ApiListEntity<>(result, super.headers, super.status);
private <E> ApiListResponse<E> wrapper(ApiListResult<E> result) {
return new ApiListResponse<>(result, super.headers, super.status);
}
}
}

View File

@ -21,7 +21,7 @@ import java.util.List;
* @author liyong.tian
* @since 2017/11/14 下午7:52
*/
public class ApiPageEntity<E> extends ApiCoreEntity<PageData<E>, ApiPageResult<E>> {
public class ApiPageResponse<E> extends ApiCoreResponse<PageData<E>, ApiPageResult<E>> {
/**
* Create a new {@code HttpEntity} with the given body, headers, and status code.
@ -30,7 +30,7 @@ public class ApiPageEntity<E> extends ApiCoreEntity<PageData<E>, ApiPageResult<E
* @param headers the entity headers
* @param status the status code
*/
public ApiPageEntity(ApiPageResult<E> body, MultiValueMap<String, String> headers, HttpStatus status) {
public ApiPageResponse(ApiPageResult<E> body, MultiValueMap<String, String> headers, HttpStatus status) {
super(body, headers, status);
}
@ -40,7 +40,7 @@ public class ApiPageEntity<E> extends ApiCoreEntity<PageData<E>, ApiPageResult<E
* @return the created builder
* @since 4.1
*/
public static <E> ApiPageEntity<E> empty() {
public static <E> ApiPageResponse<E> empty() {
return status(HttpStatus.OK).empty();
}
@ -51,32 +51,32 @@ public class ApiPageEntity<E> extends ApiCoreEntity<PageData<E>, ApiPageResult<E
* @return the created {@code ResponseEntity}
* @since 4.1
*/
public static <E> ApiPageEntity<E> ok(Page<E> page) {
public static <E> ApiPageResponse<E> ok(Page<E> page) {
return status(HttpStatus.OK).ok(page);
}
public static <E> ApiPageEntity<E> ok(org.springframework.data.domain.Page<E> page) {
public static <E> ApiPageResponse<E> ok(org.springframework.data.domain.Page<E> page) {
return status(HttpStatus.OK).ok(page);
}
public static <E> ApiPageEntity<E> ok(PageInfo<E> pageInfo) {
public static <E> ApiPageResponse<E> ok(PageInfo<E> pageInfo) {
return status(HttpStatus.OK).ok(pageInfo);
}
public static <E> ApiPageEntity<E> ok(PageResp<E> page) {
public static <E> ApiPageResponse<E> ok(PageResp<E> page) {
return status(HttpStatus.OK).ok(page);
}
public static ApiPageEntityBuilder status(@Nonnull HttpStatus status) {
public static ApiPageResponseBuilder status(@Nonnull HttpStatus status) {
Assert.notNull(status, "HttpStatus must not be null");
return new ApiPageEntityBuilder(status);
return new ApiPageResponseBuilder(status);
}
public static ApiPageEntityBuilder header(String headerName, String... headerValues) {
public static ApiPageResponseBuilder header(String headerName, String... headerValues) {
return status(HttpStatus.OK).header(headerName, headerValues);
}
public static ApiPageEntityBuilder headers(HttpHeaders headers) {
public static ApiPageResponseBuilder headers(HttpHeaders headers) {
return status(HttpStatus.OK).headers(headers);
}
@ -88,11 +88,11 @@ public class ApiPageEntity<E> extends ApiCoreEntity<PageData<E>, ApiPageResult<E
* @return the created builder
* @since 4.1
*/
public static ApiPageEntityBuilder created(URI location) {
public static ApiPageResponseBuilder created(URI location) {
return status(HttpStatus.CREATED).location(location);
}
public static ApiPageEntityBuilder created(String location) {
public static ApiPageResponseBuilder created(String location) {
return status(HttpStatus.CREATED).location(Nets.uri(location));
}
@ -102,7 +102,7 @@ public class ApiPageEntity<E> extends ApiCoreEntity<PageData<E>, ApiPageResult<E
* @return the created builder
* @since 4.1
*/
public static ApiPageEntityBuilder accepted() {
public static ApiPageResponseBuilder accepted() {
return status(HttpStatus.ACCEPTED);
}
@ -112,7 +112,7 @@ public class ApiPageEntity<E> extends ApiCoreEntity<PageData<E>, ApiPageResult<E
* @return the created builder
* @since 4.1
*/
public static ApiPageEntityBuilder badRequest() {
public static ApiPageResponseBuilder badRequest() {
return status(HttpStatus.BAD_REQUEST);
}
@ -122,70 +122,70 @@ public class ApiPageEntity<E> extends ApiCoreEntity<PageData<E>, ApiPageResult<E
* @return the created builder
* @since 4.1
*/
public static ApiPageEntityBuilder notFound() {
public static ApiPageResponseBuilder notFound() {
return status(HttpStatus.NOT_FOUND);
}
public static class ApiPageEntityBuilder extends AbstractBodySetter<ApiPageEntityBuilder> {
public static class ApiPageResponseBuilder extends AbstractBodySetter<ApiPageResponseBuilder> {
private ApiPageEntityBuilder(HttpStatus status) {
private ApiPageResponseBuilder(HttpStatus status) {
super(status);
}
public <E> ApiPageEntity<E> empty() {
public <E> ApiPageResponse<E> empty() {
return wrapper(ApiPageResult.empty());
}
public <E> ApiPageEntity<E> ok(Page<E> page) {
public <E> ApiPageResponse<E> ok(Page<E> page) {
return wrapper(ApiPageResult.ok(page));
}
public <E> ApiPageEntity<E> ok(org.springframework.data.domain.Page<E> page) {
public <E> ApiPageResponse<E> ok(org.springframework.data.domain.Page<E> page) {
return wrapper(ApiPageResult.ok(page));
}
public <E> ApiPageEntity<E> ok(PageInfo<E> pageInfo) {
public <E> ApiPageResponse<E> ok(PageInfo<E> pageInfo) {
return wrapper(ApiPageResult.ok(pageInfo));
}
public <E> ApiPageEntity<E> ok(PageResp<E> page) {
public <E> ApiPageResponse<E> ok(PageResp<E> page) {
return wrapper(ApiPageResult.ok(page));
}
public <E> ApiPageEntity<E> ok(List<E> data, Long total) {
public <E> ApiPageResponse<E> ok(List<E> data, Long total) {
return wrapper(ApiPageResult.ok(data, total));
}
public <E> ApiPageEntity<E> ok(List<E> data, Long total, Integer pageNumber, Integer pageSize) {
public <E> ApiPageResponse<E> ok(List<E> data, Long total, Integer pageNumber, Integer pageSize) {
return wrapper(ApiPageResult.ok(data, total, pageNumber, pageSize));
}
public <E> ApiPageEntity<E> err(IRespCode code) {
public <E> ApiPageResponse<E> err(IRespCode code) {
return wrapper(ApiPageResult.err(code));
}
public <E> ApiPageEntity<E> err(IRespCode code, String message) {
public <E> ApiPageResponse<E> err(IRespCode code, String message) {
return wrapper(ApiPageResult.err(code, message));
}
public <E> ApiPageEntity<E> err(String code, String message) {
public <E> ApiPageResponse<E> err(String code, String message) {
return wrapper(ApiPageResult.err(code, message));
}
public <E> ApiPageEntity<E> build(IRespCode code) {
public <E> ApiPageResponse<E> build(IRespCode code) {
return wrapper(ApiPageResult.build(code));
}
public <E> ApiPageEntity<E> build(Long total, IRespCode code, List<E> data, Integer pageNum, Integer pageSize) {
public <E> ApiPageResponse<E> build(Long total, IRespCode code, List<E> data, Integer pageNum, Integer pageSize) {
return wrapper(ApiPageResult.build(total, code, data, pageNum, pageSize));
}
public <E> ApiPageEntity<E> build(Long total, String code, String message, List<E> data,
public <E> ApiPageResponse<E> build(Long total, String code, String message, List<E> data,
Integer pageNum, Integer pageSize) {
return wrapper(ApiPageResult.build(total, code, message, data, pageNum, pageSize));
}
private <E> ApiPageEntity<E> wrapper(ApiPageResult<E> result) {
return new ApiPageEntity<>(result, super.headers, super.status);
private <E> ApiPageResponse<E> wrapper(ApiPageResult<E> result) {
return new ApiPageResponse<>(result, super.headers, super.status);
}
}
}

View File

@ -18,7 +18,7 @@ import java.util.function.Function;
* @author liyong.tian
* @since 2017/11/14 下午7:55
*/
public class ApiEntity<E> extends ApiCoreEntity<E, ApiResult<E>> {
public class ApiResponse<E> extends ApiCoreResponse<E, ApiResult<E>> {
/**
* Create a new {@code HttpEntity} with the given body, headers, and status code.
@ -27,16 +27,16 @@ public class ApiEntity<E> extends ApiCoreEntity<E, ApiResult<E>> {
* @param headers the entity headers
* @param status the status code
*/
ApiEntity(ApiResult<E> body, MultiValueMap<String, String> headers, HttpStatus status) {
ApiResponse(ApiResult<E> body, MultiValueMap<String, String> headers, HttpStatus status) {
super(body, headers, status);
}
public <T> ApiEntity<T> map(Function<E, T> mapper) {
public <T> ApiResponse<T> map(Function<E, T> mapper) {
ApiResult<T> result = getBody().map(mapper);
return status(getStatusCode()).headers(getHeaders()).wrapper(result);
}
public static <E> ApiEntity<E> of(ResponseEntity<E> entity) {
public static <E> ApiResponse<E> of(ResponseEntity<E> entity) {
return status(entity.getStatusCode()).headers(entity.getHeaders()).ok(entity.getBody());
}
@ -46,7 +46,7 @@ public class ApiEntity<E> extends ApiCoreEntity<E, ApiResult<E>> {
* @return the created builder
* @since 4.1
*/
public static <E> ApiEntity<E> ok() {
public static <E> ApiResponse<E> ok() {
return status(HttpStatus.OK).ok();
}
@ -57,24 +57,24 @@ public class ApiEntity<E> extends ApiCoreEntity<E, ApiResult<E>> {
* @return the created {@code ResponseEntity}
* @since 4.1
*/
public static <E> ApiEntity<E> ok(E data) {
public static <E> ApiResponse<E> ok(E data) {
return status(HttpStatus.OK).ok(data);
}
public static <E> ApiEntity<E> build(IRespCode code, E data) {
public static <E> ApiResponse<E> build(IRespCode code, E data) {
return status(HttpStatus.OK).build(code, data);
}
public static ApiEntityBuilder status(@Nonnull HttpStatus status) {
public static ApiResponseBuilder status(@Nonnull HttpStatus status) {
Assert.notNull(status, "HttpStatus must not be null");
return new ApiEntityBuilder(status);
return new ApiResponseBuilder(status);
}
public static ApiEntityBuilder header(String headerName, String... headerValues) {
public static ApiResponseBuilder header(String headerName, String... headerValues) {
return status(HttpStatus.OK).header(headerName, headerValues);
}
public static ApiEntityBuilder headers(HttpHeaders headers) {
public static ApiResponseBuilder headers(HttpHeaders headers) {
return status(HttpStatus.OK).headers(headers);
}
@ -86,11 +86,11 @@ public class ApiEntity<E> extends ApiCoreEntity<E, ApiResult<E>> {
* @return the created builder
* @since 4.1
*/
public static ApiEntityBuilder created(URI location) {
public static ApiResponseBuilder created(URI location) {
return status(HttpStatus.CREATED).location(location);
}
public static ApiEntityBuilder created(String location) {
public static ApiResponseBuilder created(String location) {
return status(HttpStatus.CREATED).location(Nets.uri(location));
}
@ -100,7 +100,7 @@ public class ApiEntity<E> extends ApiCoreEntity<E, ApiResult<E>> {
* @return the created builder
* @since 4.1
*/
public static ApiEntityBuilder accepted() {
public static ApiResponseBuilder accepted() {
return status(HttpStatus.ACCEPTED);
}
@ -110,7 +110,7 @@ public class ApiEntity<E> extends ApiCoreEntity<E, ApiResult<E>> {
* @return the created builder
* @since 4.1
*/
public static ApiEntityBuilder badRequest() {
public static ApiResponseBuilder badRequest() {
return status(HttpStatus.BAD_REQUEST);
}
@ -120,69 +120,69 @@ public class ApiEntity<E> extends ApiCoreEntity<E, ApiResult<E>> {
* @return the created builder
* @since 4.1
*/
public static ApiEntityBuilder notFound() {
public static ApiResponseBuilder notFound() {
return status(HttpStatus.NOT_FOUND);
}
public static class ApiEntityBuilder extends AbstractBodySetter<ApiEntityBuilder> {
public static class ApiResponseBuilder extends AbstractBodySetter<ApiResponseBuilder> {
private ApiEntityBuilder(HttpStatus status) {
private ApiResponseBuilder(HttpStatus status) {
super(status);
}
public <E> ApiEntity<E> ok() {
public <E> ApiResponse<E> ok() {
return wrapper(ApiResult.ok());
}
public <E> ApiEntity<E> ok(E data) {
public <E> ApiResponse<E> ok(E data) {
return wrapper(ApiResult.ok(data));
}
@SuppressWarnings("all")
public <E> ApiEntity<E> okOrNotFound(Optional<E> optional) {
public <E> ApiResponse<E> okOrNotFound(Optional<E> optional) {
return optional.map(o -> wrapper(ApiResult.ok(o))).orElseGet(() -> {
return wrapper(ApiResult.ok());
});
}
public <E> ApiEntity<E> err(IRespCode code) {
public <E> ApiResponse<E> err(IRespCode code) {
return wrapper(ApiResult.err(code));
}
public <E> ApiEntity<E> err(IRespCode code, String message) {
public <E> ApiResponse<E> err(IRespCode code, String message) {
return wrapper(ApiResult.err(code, message));
}
public <E> ApiEntity<E> err(IRespCode code, E data) {
public <E> ApiResponse<E> err(IRespCode code, E data) {
return wrapper(ApiResult.err(code, data));
}
public <E> ApiEntity<E> err(String message) {
public <E> ApiResponse<E> err(String message) {
return wrapper(ApiResult.err(message));
}
public <E> ApiEntity<E> err(String code, String message) {
public <E> ApiResponse<E> err(String code, String message) {
return wrapper(ApiResult.err(code, message));
}
public <E> ApiEntity<E> with(Throwable e) {
public <E> ApiResponse<E> with(Throwable e) {
return wrapper(ApiResult.with(e));
}
public <E> ApiEntity<E> build(IRespCode code) {
public <E> ApiResponse<E> build(IRespCode code) {
return build(code, null);
}
public <E> ApiEntity<E> build(IRespCode code, E data) {
public <E> ApiResponse<E> build(IRespCode code, E data) {
return wrapper(ApiResult.build(code, data));
}
public <E> ApiEntity<E> build(String code, String message, E data) {
public <E> ApiResponse<E> build(String code, String message, E data) {
return wrapper(ApiResult.build(code, message, data));
}
<E> ApiEntity<E> wrapper(ApiResult<E> result) {
return new ApiEntity<>(result, super.headers, super.status);
<E> ApiResponse<E> wrapper(ApiResult<E> result) {
return new ApiResponse<>(result, super.headers, super.status);
}
}
}

View File

@ -2,7 +2,7 @@ package cn.axzo.framework.web.servlet.filter;
import cn.axzo.framework.core.util.ClassUtil;
import cn.axzo.framework.domain.web.code.BaseCode;
import cn.axzo.framework.web.http.ApiEntity;
import cn.axzo.framework.web.http.ApiResponse;
import cn.axzo.framework.web.servlet.context.RequestMappingHandlerAdapterLazyAware;
import io.undertow.server.RequestTooBigException;
import io.undertow.server.handlers.form.MultiPartParserDefinition;
@ -87,7 +87,7 @@ public class OrderedBadRequestFilter extends OncePerRequestFilter implements Ord
return;
}
ApiEntity<Void> returnValue = _decideReturnValue(ex);
ApiResponse<Void> returnValue = _decideReturnValue(ex);
MethodParameter returnType = new ReturnValueMethodParameter(returnValue);
val returnValueHandler = _getReturnValueHandler(returnType);
if (returnValueHandler == null) {
@ -125,38 +125,38 @@ public class OrderedBadRequestFilter extends OncePerRequestFilter implements Ord
.orElse(null);
}
private ApiEntity<Void> _decideReturnValue(Exception ex) {
ApiEntity<Void> returnValue;
private ApiResponse<Void> _decideReturnValue(Exception ex) {
ApiResponse<Void> returnValue;
if (ex instanceof IllegalArgumentException) {
return ApiEntity.badRequest().err(BAD_REQUEST, ex.getMessage());
return ApiResponse.badRequest().err(BAD_REQUEST, ex.getMessage());
} else if (ex instanceof StringIndexOutOfBoundsException) {
return ApiEntity.badRequest().err(BAD_REQUEST, ERROR_FORM_DATA_NOT_ENCODED);
return ApiResponse.badRequest().err(BAD_REQUEST, ERROR_FORM_DATA_NOT_ENCODED);
} else if (ex instanceof IllegalStateException) {
return _decideReturnValue((IllegalStateException) ex);
} else if (ex instanceof RuntimeException) {
return _decideReturnValue((RuntimeException) ex);
}
return ApiEntity.status(INTERNAL_SERVER_ERROR).err(BaseCode.SERVER_ERROR);
return ApiResponse.status(INTERNAL_SERVER_ERROR).err(BaseCode.SERVER_ERROR);
}
private ApiEntity<Void> _decideReturnValue(IllegalStateException ex) {
private ApiResponse<Void> _decideReturnValue(IllegalStateException ex) {
if (isUndertow) {
Throwable cause = ex.getCause();
if (cause instanceof RequestTooBigException) {
return ApiEntity.status(HttpStatus.PAYLOAD_TOO_LARGE).err(PAYLOAD_TOO_LARGE, cause.getMessage());
return ApiResponse.status(HttpStatus.PAYLOAD_TOO_LARGE).err(PAYLOAD_TOO_LARGE, cause.getMessage());
}
if (cause instanceof MultiPartParserDefinition.FileTooLargeException) {
return ApiEntity.status(HttpStatus.PAYLOAD_TOO_LARGE).err(PAYLOAD_TOO_LARGE, cause.getMessage());
return ApiResponse.status(HttpStatus.PAYLOAD_TOO_LARGE).err(PAYLOAD_TOO_LARGE, cause.getMessage());
}
}
return ApiEntity.badRequest().err(BAD_REQUEST, ex.getMessage());
return ApiResponse.badRequest().err(BAD_REQUEST, ex.getMessage());
}
private ApiEntity<Void> _decideReturnValue(RuntimeException ex) {
private ApiResponse<Void> _decideReturnValue(RuntimeException ex) {
if (ex.getCause() instanceof IOException) {
return ApiEntity.badRequest().err(BAD_REQUEST, ex.getCause().getMessage());
return ApiResponse.badRequest().err(BAD_REQUEST, ex.getCause().getMessage());
}
return ApiEntity.badRequest().err(BAD_REQUEST, ex.getMessage());
return ApiResponse.badRequest().err(BAD_REQUEST, ex.getMessage());
}
/**

View File

@ -1,6 +1,6 @@
package cn.axzo.framework.web.servlet.method;
import cn.axzo.framework.web.http.ApiCoreEntity;
import cn.axzo.framework.web.http.ApiCoreResponse;
import org.springframework.core.MethodParameter;
import org.springframework.core.ResolvableType;
@ -11,20 +11,20 @@ import java.lang.reflect.Type;
* @Author liyong.tian
* @Date 2020/9/9 17:13
**/
public class ApiCoreEntityMethodParameter extends MethodParameter {
public class ApiCoreResponseMethodParameter extends MethodParameter {
private final Object returnValue;
private final ResolvableType returnType;
public ApiCoreEntityMethodParameter(MethodParameter parameter, ApiCoreEntity<?, ?> returnValue) {
public ApiCoreResponseMethodParameter(MethodParameter parameter, ApiCoreResponse<?, ?> returnValue) {
super(parameter);
this.returnValue = returnValue.getBody();
ResolvableType generic = ResolvableType.forType(super.getGenericParameterType()).getGeneric(0);
this.returnType = ResolvableType.forClassWithGenerics(returnValue.getBody().getClass(), generic);
}
public ApiCoreEntityMethodParameter(ApiCoreEntityMethodParameter original) {
public ApiCoreResponseMethodParameter(ApiCoreResponseMethodParameter original) {
super(original);
this.returnValue = original.returnValue;
this.returnType = original.returnType;
@ -48,6 +48,6 @@ public class ApiCoreEntityMethodParameter extends MethodParameter {
@Override
public MethodParameter clone() {
return new ApiCoreEntityMethodParameter(this);
return new ApiCoreResponseMethodParameter(this);
}
}

View File

@ -1,6 +1,6 @@
package cn.axzo.framework.web.servlet.method;
import cn.axzo.framework.web.http.ApiCoreEntity;
import cn.axzo.framework.web.http.ApiCoreResponse;
import org.springframework.core.MethodParameter;
import org.springframework.util.Assert;
import org.springframework.web.context.request.NativeWebRequest;
@ -15,17 +15,17 @@ import javax.servlet.http.HttpServletResponse;
* @Author liyong.tian
* @Date 2020/9/9 17:16
**/
public class ApiCoreEntityMethodProcessor implements HandlerMethodReturnValueHandler {
public class ApiCoreResponseMethodProcessor implements HandlerMethodReturnValueHandler {
private final HttpEntityMethodProcessor httpEntityMethodProcessor;
public ApiCoreEntityMethodProcessor(HttpEntityMethodProcessor httpEntityMethodProcessor) {
public ApiCoreResponseMethodProcessor(HttpEntityMethodProcessor httpEntityMethodProcessor) {
this.httpEntityMethodProcessor = httpEntityMethodProcessor;
}
@Override
public boolean supportsReturnType(MethodParameter returnType) {
return ApiCoreEntity.class.isAssignableFrom(returnType.getParameterType());
return ApiCoreResponse.class.isAssignableFrom(returnType.getParameterType());
}
@Override
@ -36,12 +36,12 @@ public class ApiCoreEntityMethodProcessor implements HandlerMethodReturnValueHan
}
// 设置http status
Assert.isInstanceOf(ApiCoreEntity.class, returnValue);
ApiCoreEntity<?, ?> apiCoreEntity = (ApiCoreEntity<?, ?>) returnValue;
webRequest.getNativeResponse(HttpServletResponse.class).setStatus(apiCoreEntity.getStatusCodeValue());
Assert.isInstanceOf(ApiCoreResponse.class, returnValue);
ApiCoreResponse<?, ?> apiCoreResponse = (ApiCoreResponse<?, ?>) returnValue;
webRequest.getNativeResponse(HttpServletResponse.class).setStatus(apiCoreResponse.getStatusCodeValue());
//重写返回类型
returnType = new ApiCoreEntityMethodParameter(returnType, apiCoreEntity);
returnType = new ApiCoreResponseMethodParameter(returnType, apiCoreResponse);
httpEntityMethodProcessor.handleReturnValue(returnValue, returnType, mavContainer, webRequest);
}
}

View File

@ -1,7 +1,7 @@
package cn.axzo.framework.web.servlet.security.oauth;
import cn.axzo.framework.core.util.ClassUtil;
import cn.axzo.framework.web.http.ApiCoreEntity;
import cn.axzo.framework.web.http.ApiCoreResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.*;
import org.springframework.http.converter.GenericHttpMessageConverter;
@ -54,8 +54,8 @@ public class CustomOAuth2ExceptionRenderer implements OAuth2ExceptionRenderer {
if (outputMessage instanceof ServerHttpResponse) {
if (httpEntity instanceof ResponseEntity) {
((ServerHttpResponse) outputMessage).setStatusCode(((ResponseEntity<?>) httpEntity).getStatusCode());
} else if (httpEntity instanceof ApiCoreEntity) {
((ServerHttpResponse) outputMessage).setStatusCode(((ApiCoreEntity<?, ?>) httpEntity).getStatusCode());
} else if (httpEntity instanceof ApiCoreResponse) {
((ServerHttpResponse) outputMessage).setStatusCode(((ApiCoreResponse<?, ?>) httpEntity).getStatusCode());
}
}
HttpHeaders entityHeaders = httpEntity.getHeaders();

View File

@ -1,7 +1,7 @@
package cn.axzo.framework.web.servlet.security.oauth;
import cn.axzo.framework.domain.web.code.BaseCode;
import cn.axzo.framework.web.http.ApiEntity;
import cn.axzo.framework.web.http.ApiResponse;
import org.springframework.http.HttpEntity;
import org.springframework.http.ResponseEntity;
import org.springframework.http.converter.HttpMessageConverter;
@ -66,7 +66,7 @@ public class SpringOAuth2AuthenticationEntryPoint extends OAuth2AuthenticationEn
private HttpEntity<?> beforeBodyWrite(ResponseEntity<OAuth2Exception> responseEntity) {
OAuth2Exception e = responseEntity.getBody();
return ApiEntity.status(responseEntity.getStatusCode())
return ApiResponse.status(responseEntity.getStatusCode())
.headers(responseEntity.getHeaders())
.err(BaseCode.parse(e.getHttpErrorCode()), OAuth2Util.getMessage(e));
}