基础类命名调整
This commit is contained in:
parent
04f0fc477c
commit
0a8bc6daf3
@ -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));
|
||||
}
|
||||
|
||||
|
||||
@ -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;
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
@ -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();
|
||||
|
||||
@ -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));
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user