当前位置: 首页 > news >正文

做网站的经历感想竞价托管服务公司

做网站的经历感想,竞价托管服务公司,顺德做网站设计的公司,wordpress 侧边悬浮块项目场景: springboot项目中同时使用接口文档swagger和knife4j 问题描述 在实体类中设置了字段必填的属性,在访问接口文档时出现异常 实体类关键代码片段 /*** 部门表 sys_dept*/ public class SysDept extends BaseEntity {private static final lo…

项目场景:

springboot项目中同时使用接口文档swagger和knife4j


问题描述

在实体类中设置了字段必填的属性,在访问接口文档时出现异常

实体类关键代码片段

/*** 部门表 sys_dept*/
public class SysDept extends BaseEntity
{private static final long serialVersionUID = 1L;/** 部门ID */private Long deptId;/** 部门名称 */private String deptName;/** 显示顺序 */private Integer orderNum;@NotBlank(message = "部门名称不能为空")@Size(min = 0, max = 30, message = "部门名称长度不能超过30个字符")public String getDeptName(){return deptName;}public void setDeptName(String deptName){this.deptName = deptName;}@NotNull(message = "显示顺序不能为空")public Integer getOrderNum(){return orderNum;}public void setOrderNum(Integer orderNum){this.orderNum = orderNum;}
}

异常描述:

(1)没有加入knife4j配置,仅使用swagger配置

        <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>3.0.0</version></dependency>
package com.pie.common.swagger.config;@Configuration
@EnableSwagger2
@EnableAutoConfiguration
@ConditionalOnProperty(name = "swagger.enabled", matchIfMissing = true)
public class SwaggerAutoConfiguration
{/*** 默认的排除路径,排除Spring Boot默认的错误处理路径和端点*/private static final List<String> DEFAULT_EXCLUDE_PATH = Arrays.asList("/error", "/actuator/**");private static final String BASE_PATH = "/**";@Bean@ConditionalOnMissingBeanpublic SwaggerProperties swaggerProperties(){return new SwaggerProperties();}@Beanpublic Docket api(SwaggerProperties swaggerProperties){// base-path处理if (swaggerProperties.getBasePath().isEmpty()){swaggerProperties.getBasePath().add(BASE_PATH);}// noinspection uncheckedList<Predicate<String>> basePath = new ArrayList<Predicate<String>>();swaggerProperties.getBasePath().forEach(path -> basePath.add(PathSelectors.ant(path)));// exclude-path处理if (swaggerProperties.getExcludePath().isEmpty()){swaggerProperties.getExcludePath().addAll(DEFAULT_EXCLUDE_PATH);}List<Predicate<String>> excludePath = new ArrayList<>();swaggerProperties.getExcludePath().forEach(path -> excludePath.add(PathSelectors.ant(path)));ApiSelectorBuilder builder = new Docket(DocumentationType.SWAGGER_2).host(swaggerProperties.getHost()).apiInfo(apiInfo(swaggerProperties)).select().apis(RequestHandlerSelectors.basePackage(swaggerProperties.getBasePackage()));swaggerProperties.getBasePath().forEach(p -> builder.paths(PathSelectors.ant(p)));swaggerProperties.getExcludePath().forEach(p -> builder.paths(PathSelectors.ant(p).negate()));return builder.build().securitySchemes(securitySchemes()).securityContexts(securityContexts()).pathMapping("/");}/*** 安全模式,这里指定token通过Authorization头请求头传递*/private List<SecurityScheme> securitySchemes(){List<SecurityScheme> apiKeyList = new ArrayList<SecurityScheme>();apiKeyList.add(new ApiKey("Authorization", "Authorization", "header"));return apiKeyList;}/*** 安全上下文*/private List<SecurityContext> securityContexts(){List<SecurityContext> securityContexts = new ArrayList<>();securityContexts.add(SecurityContext.builder().securityReferences(defaultAuth()).operationSelector(o -> o.requestMappingPattern().matches("/.*")).build());return securityContexts;}/*** 默认的全局鉴权策略** @return*/private List<SecurityReference> defaultAuth(){AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];authorizationScopes[0] = authorizationScope;List<SecurityReference> securityReferences = new ArrayList<>();securityReferences.add(new SecurityReference("Authorization", authorizationScopes));return securityReferences;}private ApiInfo apiInfo(SwaggerProperties swaggerProperties){return new ApiInfoBuilder().title(swaggerProperties.getTitle()).description(swaggerProperties.getDescription()).license(swaggerProperties.getLicense()).licenseUrl(swaggerProperties.getLicenseUrl()).termsOfServiceUrl(swaggerProperties.getTermsOfServiceUrl()).contact(new Contact(swaggerProperties.getContact().getName(), swaggerProperties.getContact().getUrl(), swaggerProperties.getContact().getEmail())).version(swaggerProperties.getVersion()).build();}
}

在这里插入图片描述
在查询接口以上两个字段deptNameorderNum不会被识别成必填字段

(2)在以上基础加入knife4j依赖

<!-- knife4j--><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>3.0.2</version></dependency>


在查询接口以上两个字段deptNameorderNum会被识别成必填字段。


原因分析:

应该是swagger对注解@NotBlank(message = "部门名称不能为空")没有生效。


解决方案:

目前还不知道为什么swagger没有对注解生效,也没有验证这个必填问题是否对前端接口调用有影响,期待大佬的解疑!!!

http://www.dt0577.cn/news/5166.html

相关文章:

  • 洛杉矶网站建设网络营销教程
  • 网站常见程序问题如何设计企业网站
  • 网站开发之美 pdf网页设计首页
  • 不能制作网页的软件是微博关键词排名优化
  • 机关网站制度建设微网站建站平台
  • 58做网站吗外链图片
  • 网站开发的硬件设备有网站开发报价方案
  • 全部网站360优化大师官方官网
  • 建个商场网站北京效果好的网站推广
  • 独立站建设公司企业如何建立网站
  • 荣县网站建设阿森纳英超积分
  • 滑县网站建设报价百度seo排名优化费用
  • 做网站需要下载啥在线外链工具
  • 怎么做记步数的程序到网站地推拉新接单平台
  • 做食品怎样选网站网络营销是做什么
  • 网站字头优化网站关键词排名批量查询
  • 温州商城网站建设常熟网络推广
  • 找广告商的平台合肥seo报价
  • 深圳市建设局质监站官方网站淘宝客推广
  • 自已建网站东莞做网站最好的是哪家
  • 做网站准备材料网络宣传推广方法
  • 购物网站数据分析温州seo博客
  • 织梦网站下载网站推广关键词排名优化
  • asp.net 制作网站教程在百度上怎么发布广告
  • 新乡营销型网站想要推广页
  • 自动发卡网站开发女排联赛排名
  • 企业的门户网站一般用什么做百度网站安全检测
  • 平面设计鉴赏网站数据分析师培训机构推荐
  • 网站后台seo优化如何做竞价恶意点击器
  • 医疗机构 网站备案百度预测大数据官网