mirror of
				https://github.com/continew-org/continew-admin.git
				synced 2025-11-04 10:57:10 +08:00 
			
		
		
		
	refactor: 优化 springdoc-openapi 对象型参数处理
1.使用 default-flat-param-object 全局设置对象型参数展示形式。此设置是在 springdoc-openapi v1.6.11 版本开始添加的新特性(详情请参阅:https://github.com/springdoc/springdoc-openapi/pull/1805),在此之前,只能在所有需要处理的对象型参数类上使用 @ParameterObject,工作量较大。 2.作者在使用上方这个配置时还遇到了一个 Bug,那就是只要在对象型参数前使用了注解,例如:@Validated PageQuery pageQuery,这个配置就不会生效了。此问题已在 GitHub 提交了相应 issue(详情请参阅:https://github.com/springdoc/springdoc-openapi/issues/2181),并且 springdoc-openapi 社区某个小伙伴儿已在当前最新发布的 v2.1.0 和 v1.7.0 中修复。 注意:由于当前使用的 Knife4j 版本其内部引入的 springdoc-openapi 相关依赖非最新版本,所以为了解决配置不生效问题,暂时将部分对象型参数移除了 @Validated 注解(除了 PageQuery,其他类当前也未实际添加校验,所以直接移除了)。当然如果不想移除的话,也可以从依赖上功夫,即移除 Knife4j 内引入的 springdoc-openapi 相关依赖,然后自行添加 springdoc-openapi 相关依赖并指定最新版本即可。
This commit is contained in:
		@@ -75,7 +75,7 @@ public abstract class BaseController<S extends BaseService<V, D, Q, C>, V, D, Q,
 | 
			
		||||
    @Operation(summary = "分页查询列表")
 | 
			
		||||
    @ResponseBody
 | 
			
		||||
    @GetMapping
 | 
			
		||||
    public R<PageDataVO<V>> page(@Validated Q query, @Validated PageQuery pageQuery) {
 | 
			
		||||
    public R<PageDataVO<V>> page(Q query, @Validated PageQuery pageQuery) {
 | 
			
		||||
        this.checkPermission("list");
 | 
			
		||||
        PageDataVO<V> pageDataVO = baseService.page(query, pageQuery);
 | 
			
		||||
        return R.ok(pageDataVO);
 | 
			
		||||
@@ -93,7 +93,7 @@ public abstract class BaseController<S extends BaseService<V, D, Q, C>, V, D, Q,
 | 
			
		||||
    @Operation(summary = "查询树列表")
 | 
			
		||||
    @ResponseBody
 | 
			
		||||
    @GetMapping("/tree")
 | 
			
		||||
    public R<List<Tree<Long>>> tree(@Validated Q query, @Validated SortQuery sortQuery) {
 | 
			
		||||
    public R<List<Tree<Long>>> tree(Q query, SortQuery sortQuery) {
 | 
			
		||||
        this.checkPermission("list");
 | 
			
		||||
        List<Tree<Long>> list = baseService.tree(query, sortQuery, false);
 | 
			
		||||
        return R.ok(list);
 | 
			
		||||
@@ -111,7 +111,7 @@ public abstract class BaseController<S extends BaseService<V, D, Q, C>, V, D, Q,
 | 
			
		||||
    @Operation(summary = "查询列表")
 | 
			
		||||
    @ResponseBody
 | 
			
		||||
    @GetMapping("/list")
 | 
			
		||||
    public R<List<V>> list(@Validated Q query, @Validated SortQuery sortQuery) {
 | 
			
		||||
    public R<List<V>> list(Q query, SortQuery sortQuery) {
 | 
			
		||||
        this.checkPermission("list");
 | 
			
		||||
        List<V> list = baseService.list(query, sortQuery);
 | 
			
		||||
        return R.ok(list);
 | 
			
		||||
@@ -197,7 +197,7 @@ public abstract class BaseController<S extends BaseService<V, D, Q, C>, V, D, Q,
 | 
			
		||||
     */
 | 
			
		||||
    @Operation(summary = "导出数据")
 | 
			
		||||
    @GetMapping("/export")
 | 
			
		||||
    public void export(@Validated Q query, @Validated SortQuery sortQuery, HttpServletResponse response) {
 | 
			
		||||
    public void export(Q query, SortQuery sortQuery, HttpServletResponse response) {
 | 
			
		||||
        this.checkPermission("export");
 | 
			
		||||
        baseService.export(query, sortQuery, response);
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -24,7 +24,6 @@ import lombok.Data;
 | 
			
		||||
 | 
			
		||||
import io.swagger.v3.oas.annotations.media.Schema;
 | 
			
		||||
 | 
			
		||||
import org.springdoc.api.annotations.ParameterObject;
 | 
			
		||||
import org.springframework.data.domain.Sort;
 | 
			
		||||
 | 
			
		||||
import cn.hutool.core.util.ArrayUtil;
 | 
			
		||||
@@ -39,7 +38,6 @@ import top.charles7c.cnadmin.common.constant.StringConsts;
 | 
			
		||||
 * @since 2023/2/12 21:30
 | 
			
		||||
 */
 | 
			
		||||
@Data
 | 
			
		||||
@ParameterObject
 | 
			
		||||
@Schema(description = "排序查询条件")
 | 
			
		||||
public class SortQuery implements Serializable {
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user