基础类命名调整

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

View File

@ -18,7 +18,7 @@ import java.util.Set;
*/ */
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ToString(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; 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 headers the entity headers
* @param status the status code * @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); super(body, headers);
Assert.notNull(status, "HttpStatus must not be null"); Assert.notNull(status, "HttpStatus must not be null");
this.status = status; this.status = status;

View File

@ -16,7 +16,7 @@ import java.util.List;
* @author liyong.tian * @author liyong.tian
* @since 2017/11/14 下午8:00 * @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. * 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 headers the entity headers
* @param status the status code * @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); super(body, headers, status);
} }
@ -35,7 +35,7 @@ public class ApiListEntity<E> extends ApiCoreEntity<List<E>, ApiListResult<E>> {
* @return the created builder * @return the created builder
* @since 4.1 * @since 4.1
*/ */
public static <E> ApiListEntity<E> ok() { public static <E> ApiListResponse<E> ok() {
return status(HttpStatus.OK).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} * @return the created {@code ResponseEntity}
* @since 4.1 * @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); 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"); 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); 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); return status(HttpStatus.OK).headers(headers);
} }
@ -71,11 +71,11 @@ public class ApiListEntity<E> extends ApiCoreEntity<List<E>, ApiListResult<E>> {
* @return the created builder * @return the created builder
* @since 4.1 * @since 4.1
*/ */
public static ApiListEntityBuilder created(URI location) { public static ApiListResponseBuilder created(URI location) {
return status(HttpStatus.CREATED).location(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)); 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 * @return the created builder
* @since 4.1 * @since 4.1
*/ */
public static ApiListEntityBuilder accepted() { public static ApiListResponseBuilder accepted() {
return status(HttpStatus.ACCEPTED); return status(HttpStatus.ACCEPTED);
} }
@ -95,7 +95,7 @@ public class ApiListEntity<E> extends ApiCoreEntity<List<E>, ApiListResult<E>> {
* @return the created builder * @return the created builder
* @since 4.1 * @since 4.1
*/ */
public static ApiListEntityBuilder badRequest() { public static ApiListResponseBuilder badRequest() {
return status(HttpStatus.BAD_REQUEST); return status(HttpStatus.BAD_REQUEST);
} }
@ -105,58 +105,58 @@ public class ApiListEntity<E> extends ApiCoreEntity<List<E>, ApiListResult<E>> {
* @return the created builder * @return the created builder
* @since 4.1 * @since 4.1
*/ */
public static ApiListEntityBuilder notFound() { public static ApiListResponseBuilder notFound() {
return status(HttpStatus.NOT_FOUND); 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); super(status);
} }
public <E> ApiListEntity<E> ok() { public <E> ApiListResponse<E> ok() {
return wrapper(ApiListResult.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)); return wrapper(ApiListResult.ok(data));
} }
public <E> ApiListEntity<E> err(IRespCode code) { public <E> ApiListResponse<E> err(IRespCode code) {
return wrapper(ApiListResult.err(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)); 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)); 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)); 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)); 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)); 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)); 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)); return wrapper(ApiListResult.build(code, message, data));
} }
private <E> ApiListEntity<E> wrapper(ApiListResult<E> result) { private <E> ApiListResponse<E> wrapper(ApiListResult<E> result) {
return new ApiListEntity<>(result, super.headers, super.status); return new ApiListResponse<>(result, super.headers, super.status);
} }
} }
} }

View File

@ -21,7 +21,7 @@ import java.util.List;
* @author liyong.tian * @author liyong.tian
* @since 2017/11/14 下午7:52 * @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. * 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 headers the entity headers
* @param status the status code * @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); super(body, headers, status);
} }
@ -40,7 +40,7 @@ public class ApiPageEntity<E> extends ApiCoreEntity<PageData<E>, ApiPageResult<E
* @return the created builder * @return the created builder
* @since 4.1 * @since 4.1
*/ */
public static <E> ApiPageEntity<E> empty() { public static <E> ApiPageResponse<E> empty() {
return status(HttpStatus.OK).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} * @return the created {@code ResponseEntity}
* @since 4.1 * @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); 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); 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); 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); 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"); 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); 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); return status(HttpStatus.OK).headers(headers);
} }
@ -88,11 +88,11 @@ public class ApiPageEntity<E> extends ApiCoreEntity<PageData<E>, ApiPageResult<E
* @return the created builder * @return the created builder
* @since 4.1 * @since 4.1
*/ */
public static ApiPageEntityBuilder created(URI location) { public static ApiPageResponseBuilder created(URI location) {
return status(HttpStatus.CREATED).location(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)); 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 * @return the created builder
* @since 4.1 * @since 4.1
*/ */
public static ApiPageEntityBuilder accepted() { public static ApiPageResponseBuilder accepted() {
return status(HttpStatus.ACCEPTED); return status(HttpStatus.ACCEPTED);
} }
@ -112,7 +112,7 @@ public class ApiPageEntity<E> extends ApiCoreEntity<PageData<E>, ApiPageResult<E
* @return the created builder * @return the created builder
* @since 4.1 * @since 4.1
*/ */
public static ApiPageEntityBuilder badRequest() { public static ApiPageResponseBuilder badRequest() {
return status(HttpStatus.BAD_REQUEST); return status(HttpStatus.BAD_REQUEST);
} }
@ -122,70 +122,70 @@ public class ApiPageEntity<E> extends ApiCoreEntity<PageData<E>, ApiPageResult<E
* @return the created builder * @return the created builder
* @since 4.1 * @since 4.1
*/ */
public static ApiPageEntityBuilder notFound() { public static ApiPageResponseBuilder notFound() {
return status(HttpStatus.NOT_FOUND); 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); super(status);
} }
public <E> ApiPageEntity<E> empty() { public <E> ApiPageResponse<E> empty() {
return wrapper(ApiPageResult.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)); 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)); 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)); 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)); 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)); 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)); 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)); 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)); 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)); 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)); 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)); 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) { Integer pageNum, Integer pageSize) {
return wrapper(ApiPageResult.build(total, code, message, data, pageNum, pageSize)); return wrapper(ApiPageResult.build(total, code, message, data, pageNum, pageSize));
} }
private <E> ApiPageEntity<E> wrapper(ApiPageResult<E> result) { private <E> ApiPageResponse<E> wrapper(ApiPageResult<E> result) {
return new ApiPageEntity<>(result, super.headers, super.status); return new ApiPageResponse<>(result, super.headers, super.status);
} }
} }
} }

View File

@ -18,7 +18,7 @@ import java.util.function.Function;
* @author liyong.tian * @author liyong.tian
* @since 2017/11/14 下午7:55 * @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. * 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 headers the entity headers
* @param status the status code * @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); 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); ApiResult<T> result = getBody().map(mapper);
return status(getStatusCode()).headers(getHeaders()).wrapper(result); 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()); 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 * @return the created builder
* @since 4.1 * @since 4.1
*/ */
public static <E> ApiEntity<E> ok() { public static <E> ApiResponse<E> ok() {
return status(HttpStatus.OK).ok(); return status(HttpStatus.OK).ok();
} }
@ -57,24 +57,24 @@ public class ApiEntity<E> extends ApiCoreEntity<E, ApiResult<E>> {
* @return the created {@code ResponseEntity} * @return the created {@code ResponseEntity}
* @since 4.1 * @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); 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); 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"); 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); 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); return status(HttpStatus.OK).headers(headers);
} }
@ -86,11 +86,11 @@ public class ApiEntity<E> extends ApiCoreEntity<E, ApiResult<E>> {
* @return the created builder * @return the created builder
* @since 4.1 * @since 4.1
*/ */
public static ApiEntityBuilder created(URI location) { public static ApiResponseBuilder created(URI location) {
return status(HttpStatus.CREATED).location(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)); 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 * @return the created builder
* @since 4.1 * @since 4.1
*/ */
public static ApiEntityBuilder accepted() { public static ApiResponseBuilder accepted() {
return status(HttpStatus.ACCEPTED); return status(HttpStatus.ACCEPTED);
} }
@ -110,7 +110,7 @@ public class ApiEntity<E> extends ApiCoreEntity<E, ApiResult<E>> {
* @return the created builder * @return the created builder
* @since 4.1 * @since 4.1
*/ */
public static ApiEntityBuilder badRequest() { public static ApiResponseBuilder badRequest() {
return status(HttpStatus.BAD_REQUEST); return status(HttpStatus.BAD_REQUEST);
} }
@ -120,69 +120,69 @@ public class ApiEntity<E> extends ApiCoreEntity<E, ApiResult<E>> {
* @return the created builder * @return the created builder
* @since 4.1 * @since 4.1
*/ */
public static ApiEntityBuilder notFound() { public static ApiResponseBuilder notFound() {
return status(HttpStatus.NOT_FOUND); 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); super(status);
} }
public <E> ApiEntity<E> ok() { public <E> ApiResponse<E> ok() {
return wrapper(ApiResult.ok()); return wrapper(ApiResult.ok());
} }
public <E> ApiEntity<E> ok(E data) { public <E> ApiResponse<E> ok(E data) {
return wrapper(ApiResult.ok(data)); return wrapper(ApiResult.ok(data));
} }
@SuppressWarnings("all") @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 optional.map(o -> wrapper(ApiResult.ok(o))).orElseGet(() -> {
return wrapper(ApiResult.ok()); return wrapper(ApiResult.ok());
}); });
} }
public <E> ApiEntity<E> err(IRespCode code) { public <E> ApiResponse<E> err(IRespCode code) {
return wrapper(ApiResult.err(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)); 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)); 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)); 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)); 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)); return wrapper(ApiResult.with(e));
} }
public <E> ApiEntity<E> build(IRespCode code) { public <E> ApiResponse<E> build(IRespCode code) {
return build(code, null); 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)); 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)); return wrapper(ApiResult.build(code, message, data));
} }
<E> ApiEntity<E> wrapper(ApiResult<E> result) { <E> ApiResponse<E> wrapper(ApiResult<E> result) {
return new ApiEntity<>(result, super.headers, super.status); 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.core.util.ClassUtil;
import cn.axzo.framework.domain.web.code.BaseCode; 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 cn.axzo.framework.web.servlet.context.RequestMappingHandlerAdapterLazyAware;
import io.undertow.server.RequestTooBigException; import io.undertow.server.RequestTooBigException;
import io.undertow.server.handlers.form.MultiPartParserDefinition; import io.undertow.server.handlers.form.MultiPartParserDefinition;
@ -87,7 +87,7 @@ public class OrderedBadRequestFilter extends OncePerRequestFilter implements Ord
return; return;
} }
ApiEntity<Void> returnValue = _decideReturnValue(ex); ApiResponse<Void> returnValue = _decideReturnValue(ex);
MethodParameter returnType = new ReturnValueMethodParameter(returnValue); MethodParameter returnType = new ReturnValueMethodParameter(returnValue);
val returnValueHandler = _getReturnValueHandler(returnType); val returnValueHandler = _getReturnValueHandler(returnType);
if (returnValueHandler == null) { if (returnValueHandler == null) {
@ -125,38 +125,38 @@ public class OrderedBadRequestFilter extends OncePerRequestFilter implements Ord
.orElse(null); .orElse(null);
} }
private ApiEntity<Void> _decideReturnValue(Exception ex) { private ApiResponse<Void> _decideReturnValue(Exception ex) {
ApiEntity<Void> returnValue; ApiResponse<Void> returnValue;
if (ex instanceof IllegalArgumentException) { 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) { } 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) { } else if (ex instanceof IllegalStateException) {
return _decideReturnValue((IllegalStateException) ex); return _decideReturnValue((IllegalStateException) ex);
} else if (ex instanceof RuntimeException) { } else if (ex instanceof RuntimeException) {
return _decideReturnValue((RuntimeException) ex); 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) { if (isUndertow) {
Throwable cause = ex.getCause(); Throwable cause = ex.getCause();
if (cause instanceof RequestTooBigException) { 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) { 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) { 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; 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.MethodParameter;
import org.springframework.core.ResolvableType; import org.springframework.core.ResolvableType;
@ -11,20 +11,20 @@ import java.lang.reflect.Type;
* @Author liyong.tian * @Author liyong.tian
* @Date 2020/9/9 17:13 * @Date 2020/9/9 17:13
**/ **/
public class ApiCoreEntityMethodParameter extends MethodParameter { public class ApiCoreResponseMethodParameter extends MethodParameter {
private final Object returnValue; private final Object returnValue;
private final ResolvableType returnType; private final ResolvableType returnType;
public ApiCoreEntityMethodParameter(MethodParameter parameter, ApiCoreEntity<?, ?> returnValue) { public ApiCoreResponseMethodParameter(MethodParameter parameter, ApiCoreResponse<?, ?> returnValue) {
super(parameter); super(parameter);
this.returnValue = returnValue.getBody(); this.returnValue = returnValue.getBody();
ResolvableType generic = ResolvableType.forType(super.getGenericParameterType()).getGeneric(0); ResolvableType generic = ResolvableType.forType(super.getGenericParameterType()).getGeneric(0);
this.returnType = ResolvableType.forClassWithGenerics(returnValue.getBody().getClass(), generic); this.returnType = ResolvableType.forClassWithGenerics(returnValue.getBody().getClass(), generic);
} }
public ApiCoreEntityMethodParameter(ApiCoreEntityMethodParameter original) { public ApiCoreResponseMethodParameter(ApiCoreResponseMethodParameter original) {
super(original); super(original);
this.returnValue = original.returnValue; this.returnValue = original.returnValue;
this.returnType = original.returnType; this.returnType = original.returnType;
@ -48,6 +48,6 @@ public class ApiCoreEntityMethodParameter extends MethodParameter {
@Override @Override
public MethodParameter clone() { public MethodParameter clone() {
return new ApiCoreEntityMethodParameter(this); return new ApiCoreResponseMethodParameter(this);
} }
} }

View File

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

View File

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

View File

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