幽兰生空谷
--绝世独自开

关于Swagger页面的显示问题,有关数据库字段命名规则

swagger 页面不显示实体类字段属性及查询结果集回显字段名称不符合驼峰规则的问题

往下看~

数据库字段:

实体类配置:

@ApiModel(value = "医生认证")
@Data
@TableName("doc_qualification")
public class DocQualificationEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ApiModelProperty(value = "主键")
    @TableId(type = IdType.AUTO)
    private Long oid;
    /**
     * *医生id
     */
    @ApiModelProperty(value = "*医生id")
    @NotNull(message = "*医生id 不能为空", groups = {AddGroup.class, UpdateGroup.class})
    private Long doctorId;
    /**
     * *认证图片:图一,图二,图三
     */
    @ApiModelProperty(value = "*认证图片:图一,图二,图三")
    @NotNull(message = "*认证图片:图一,图二,图三 不能为空", groups = {AddGroup.class, UpdateGroup.class})
    private String dqPics;
    /**
     * *状态码
     */
    @ApiModelProperty(value = "*状态码")
    @NotNull(message = "*状态码 不能为空", groups = {AddGroup.class, UpdateGroup.class})
    private Integer tStatus;
    /**
     * 乐观锁
     */
    @ApiModelProperty(value = "乐观锁")
    private Integer revision;
    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人", hidden = true)
    @TableField(fill = FieldFill.INSERT)
    private Long createdBy;
    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间", example = "2018-10-01 12:18:48", hidden = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private Date createdTime;
    /**
     * 更新人
     */
    @ApiModelProperty(value = "更新人", hidden = true)
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long updatedBy;
    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间", example = "2018-10-01 12:18:48", hidden = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updatedTime;
}

@ApiModelProperty(value = "创建人", hidden = true)

hidden属性控制页面是否显示,true 隐藏,false 显示。

swagger页面:

1.控制类方式一:

/**
 * 保存
 */
@ApiOperation(value = "保存", httpMethod = "POST")
@RequestMapping("/save")
public R save(@RequestBody DocQualificationEntity hDocQualification) {
    hDocQualification.setTStatus(0);
    ValidatorUtils.validateEntity(hDocQualification, AddGroup.class);
        docQualificationService.save(hDocQualification);
    return R.ok();
}

控制类使用 @RequestBody 注解时,显示的参数 其中 tstatus 没有驼峰显示。

查询结果集的字段 tstatus 也没有驼峰命名,导致回显字段不一致。

解决方案:

新建配置类

@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
    /**
     * 配置返回对象信息,字段名没有按照驼峰规则显示
     * @param converters
     */
    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        FastJsonHttpMessageConverter fastJsonConverter = new FastJsonHttpMessageConverter();
        FastJsonConfig config = new FastJsonConfig();
        config.setCharset(Charset.forName("UTF-8"));
        config.setDateFormat("yyyy-MM-dd HH:mm:ss");
        //设置允许返回为null的属性
        config.setSerializerFeatures(SerializerFeature.WriteMapNullValue);
        fastJsonConverter.setFastJsonConfig(config);
        List<MediaType> list = new ArrayList<>();
        list.add(MediaType.APPLICATION_JSON_UTF8);
        fastJsonConverter.setSupportedMediaTypes(list);
        converters.add(fastJsonConverter);
    }
}

配置类新建后,结果集返回的数据会变成驼峰命名。

新的问题是,运行后访问http://localhost:8080/swagger-ui.html#/

发现 swagger 访问不了了,浏览器报 404

后台报:No mapping for GET /swagger-ui.html

解决方案:

在配置类中新增配置即可

/**
 * 配置 避免 swagger 页面访问不到,后台报:No mapping for GET /swagger-ui.html
 * @param registry
 */
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/**").addResourceLocations(
            "classpath:/static/");
    registry.addResourceHandler("swagger-ui.html").addResourceLocations(
            "classpath:/META-INF/resources/");
    registry.addResourceHandler("/webjars/**").addResourceLocations(
            "classpath:/META-INF/resources/webjars/");
    WebMvcConfigurer.super.addResourceHandlers(registry);
}

2.控制类方式二:

@ApiOperation(value = "保存", httpMethod = "POST")
@RequestMapping("/save")
public R save(DocQualificationEntity hDocQualification) {
    hDocQualification.setTStatus(0);
    ValidatorUtils.validateEntity(hDocQualification, AddGroup.class);
        docQualificationService.save(hDocQualification);
    return R.ok();
}

控制类不使用 @RequestBody 注解时,不显示 tStatus 字段,

解决方案:

因为不符合驼峰命名规则,应避免开头为一个字母,至少两个及以上。

赞(4) 打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《关于Swagger页面的显示问题,有关数据库字段命名规则》
文章链接:https://www.itheibai.com/archives/998
免责声明:根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
本站是非经营性个人站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途,网站会员捐赠是您喜欢本站而产生的赞助支持行为,仅为维持服务器的开支与维护,全凭自愿无任何强求。

评论 抢沙发

评论前必须登录!

 

养成“打赏”的好习惯,从我做起!

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册