前端嫌弃原生Swagger界面太low,于是我给她开通了超级VIP

缘由

=============================================================

接口文档想必是许多开发小伙伴的噩梦,不仅要写详细,还要及时维护文档与后端代码保持一致,稍有没及时更新接口文档,前端同学肯定会抱怨后端同学给的文档与实际情况不一致。

在这里插入图片描述

于是,引入了Swagger组件,它实现了代码即文档,后端只管写代码,只需要通过几个注解,会自动生成接口文档,前端同学可在线访问。

在这里插入图片描述

但是,对界面审美有要求的前端同学,又吐槽Swagger原生界面太low了,而且功能还少。

在这里插入图片描述

有压迫就有反抗,后端肯定不服,既然你嫌弃原生Swagger太low,那就给你开通超级VIP - knife4j。

在这里插入图片描述

原生Swagger

====================================================================

Springboot集成Swagger,其实很简单,主要是使用常用的几个注解而已。因为在面试他人的过程中,还是有不少人没使用过Swagger,所以这里简单介绍下。

首先在Spingboot工程中引入Swagger依赖,主要是2个,如下:

io.springfox

springfox-swagger2

2.9.2

io.springfox

springfox-swagger-ui

2.9.2

编写Swagger配置类,配置项名都简单易懂,可根据自己情况修改配置,注意一点是apis方法是指定要扫描的包路径,一定要写自己项目的。

package com.nobody.config;

import java.util.ArrayList;

import java.util.List;

import org.springframework.beans.factory.annotation.Value;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import springfox.documentation.builders.ApiInfoBuilder;

import springfox.documentation.builders.PathSelectors;

import springfox.documentation.builders.RequestHandlerSelectors;

import springfox.documentation.service.ApiInfo;

import springfox.documentation.service.Contact;

import springfox.documentation.service.Parameter;

import springfox.documentation.spi.DocumentationType;

import springfox.documentation.spring.web.plugins.Docket;

import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration

@EnableSwagger2

public class Swagger2Config {

@Value(“${swagger.enable:true}”)

private boolean swaggerEnable;

@Bean

public Docket createApi() {

// 全局参数

List pars = new ArrayList<>();

return new Docket(DocumentationType.SWAGGER_2).enable(swaggerEnable).apiInfo(apiInfo())

.select().apis(RequestHandlerSelectors.basePackage(“com.nobody”))

.paths(PathSelectors.any()).build().globalOperationParameters(pars);

}

private ApiInfo apiInfo() {

return new ApiInfoBuilder().title(“XX服务后端API”).description(“XX服务专用API,其他系统请勿调用!”)

.version(“1.0”).termsOfServiceUrl(“https://nobody.com”)

.contact(new Contact(“陈皮”, “https://nobody.com”, “chenpi@qq.com”)).build();

}

}

下面讲解几个常用的注解,以及如何使用,更多注解以及详细使用可以参考官方文档

  1. @Api:作用于类上,标识此类是Swagger的资源。

  2. @ApiOperation:主要作用于方法上,用于对一个接口进行说明。

  3. @ApiParam:用于方法,参数,字段上,用于对参数进行说明。

  4. @ApiModel:作用于类上,主要用于实体类当接口参数时使用,对实体类进行说明。

  5. @ApiModelProperty:作用于方法和字段上,一般用于实体类的属性说明。

package com.nobody.dto;

import io.swagger.annotations.ApiModel;

import io.swagger.annotations.ApiModelProperty;

import lombok.Data;

/**

  • @Description

  • @Author Mr.nobody

  • @Date 2021/3/28

  • @Version 1.0

*/

@ApiModel(value = “管理员实体”)

@Data

public class AdminDTO {

@ApiModelProperty(value = “用户ID”, required = true, example = “1548w4dwf7as1a21cv4”)

private String personId;

@ApiModelProperty(value = “用户名”, example = “陈皮”)

private String name;

@ApiModelProperty(value = “用户年龄”, required = true, example = “18”)

private Integer age;

}

package com.nobody.controller;

import com.nobody.dto.AdminDTO;

import io.swagger.annotations.Api;

import io.swagger.annotations.ApiOperation;

import io.swagger.annotations.ApiParam;

import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;

import java.util.List;

/**

  • @Description

  • @Author Mr.nobody

  • @Date 2021/3/27

  • @Version 1.0

*/

@Api(tags = {“管理员相关”})

@RestController

@RequestMapping(“admin”)

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
715882778906)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值