【转】SpringBoot集成springfox-swagger2构建restful API

Spring Boot学习笔记 - 整合Swagger2自动生成RESTful API文档 在App后端开发中经常需要对移动客户端(Android、iOS)提供RESTful API接口,在后期版本快速迭代的过程中,修改接口实现的时候都必须同步修改接口文档,而文档与代码又处于两个不同的媒介,除非有严格的管理机制,不然很容易导致代码与接口文档不一致现象。本文将介绍RESTful API的重磅好伙伴Swagger2,它可以轻松的整合到Spring生态链中,并与Spring MVC程序配合组织出 阅读详情

上面文章SpringMVC集成springfox-swagger2构建restful API简单写了如何在springmvc中集成swagger2。这边记录下在springboot中如何集成swagger2。其实使用基本相同。

  1. 引用相关jar包。 
    本次使用的maven,在pom.xml中引用相关依赖。
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.4.0</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.4.0</version>
</dependency>
  1. 创建swagger的配置类

这个配置类和springmvc的写法完全一致。为了区分我又重命名一个。

package com.xingguo.springboot;

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.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
public class Swagger2Configuration {

    @Bean
    public Docket buildDocket(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(buildApiInf())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.xingguo.springboot.controller"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo buildApiInf(){
        return new ApiInfoBuilder()
                    .title("xingguo大标题")
                    .description("springboot swagger2")
                    .termsOfServiceUrl("http://blog.youkuaiyun.com/u014231523网址链接")
                    .contact(new Contact("diaoxingguo", "http://blog.youkuaiyun.com/u014231523", "diaoxingguo@163.com"))
                    .build();
    }
}
  1. 在controller添加相关的注解 
    原来使用在类上使用@controller,现在可以使用@RestController,然后方法的@ResponseBody就可以不用写了,因为@RestController的注解接口上已经添加了,要求版本在4.0.1之后。
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
public @interface RestController {

    /**
     * The value may indicate a suggestion for a logical component name,
     * to be turned into a Spring bean in case of an autodetected component.
     * @return the suggested component name, if any
     * @since 4.0.1
     */
    String value() default "";
}

常用的注解如下: 
- @Api()用于类名 
- @ApiOperation()用于方法名 
- @ApiParam()用于参数说明 
- @ApiModel()用于实体类 
- @ApiModelProperty用于实体类属性 
更加详细的含义可以参考官方说明wiki 
下面会用代码和示例图说明。 
4. 浏览器上查看swagger 
启动项目在浏览器上输入url: http://{ip}:{port}/swagger-ui.html 
application.properties中可以设置的自己的端口号为9090(如果不设置,默认为8080) ,显示效果如下: 
这里写图片描述

这里会把相应包下的所有controller按类进行显示。 
我们看下其中一个类UserController.java,(请忽略业务逻辑,只看注解)

package com.xingguo.springboot.controller;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;

import javax.annotation.Resource;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import com.xingguo.springboot.model.User;
import com.xingguo.springboot.service.UserService;

/**
 * Created by diaoxingguo on 2016/10/24.
 */
@Api(value="用户controller",description="用户操作",tags={"用户操作接口"})
@RestController
public class UserController {

    @Resource
    private UserService userService;

    @ApiOperation("获取用户信息")
    @GetMapping("/getUserInfo")
    public User getUserInfo(@ApiParam(name="id",value="用户id",required=true) Long id,@ApiParam(name="username",value="用户名") String username) {
        User user = userService.getUserInfo();
        return user;
    }


    @ApiOperation("更改用户信息")
    @PostMapping("/updateUserInfo")
    public int updateUserInfo(@RequestBody @ApiParam(name="用户对象",value="传入json格式",required=true) User user){
        int num = userService.updateUserInfo(user);
        return num;
    }

    @ApiOperation("添加用户信息")
    @PostMapping("/saveUser")
    public String saveUser(@RequestBody @ApiParam(name="user",value="json fromat",required=true) User user) {
        userService.saveUser(user);
        return "success";
    }
}

这里说明下,在使用对象作为参数时,可以在对象上添加相应的注解,用户页面显示。 
如:

package com.xingguo.springboot.model;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.util.List;

/**
 * Created by diaoxingguo on 2016/10/24.
 */
@ApiModel(description="用户对象user")
public class User {
    @ApiModelProperty(value="用户名",name="username")
    private String username;
    @ApiModelProperty(value="状态",name="state",required=true)
    private Integer state;
    private String password;
    private String nickName;
    private Integer isDeleted;

    private String[] ids;
    private List<String> idList;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public Integer getState() {
        return state;
    }

    public void setState(Integer state) {
        this.state = state;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String[] getIds() {
        return ids;
    }

    public void setIds(String[] ids) {
        this.ids = ids;
    }

    public List<String> getIdList() {
        return idList;
    }

    public void setIdList(List<String> idList) {
        this.idList = idList;
    }

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public Integer getIsDeleted() {
        return isDeleted;
    }

    public void setIsDeleted(Integer isDeleted) {
        this.isDeleted = isDeleted;
    }
}

显示的效果如图: 

浏览改地址,访问主页面:http://localhost:8080/swagger-ui.html# 
这里写图片描述
这里写图片描述
看上图红框的部分,其中一个是json格式的点击就可以获取参数格式。 
第二张中可以看到字段相应的注释和是否必填。 
如果在字段上添加注释@ApiModelProperty(required=true)就是必填(默认是false),相应的页面optional标识也会消失,标识这个字段必填。 
点击下面的try it out按钮就可以进行调试。 
在使用单个参数时,如上面代码中的getUserInfo()方法,对应的效果图如下: 
这里写图片描述
这里如果是添加required=true,@ApiParam(required=true)则会在页面上显示required的标识。同样默认为false。

转自:http://blog.youkuaiyun.com/u014231523/article/details/54562695

YOLO11实战优化:长尾分布解决 | 引入Seesaw Loss配合YOLO11分类头,完美应对类别极其不平衡的现实业务场景 摘要: YOLO11在工业缺陷检测等长尾分布场景中面临尾部类别检测失效的问题,根源在于头部类别样本的负样本梯度压制了尾部类别的学习。传统方法如重采样、Focal Loss等效果有限。Seesaw Loss通过动态调整缓解因子和补偿因子,平衡类别间的梯度分布,结合YOLO11的解耦分类头、Anchor-Free设计和C2PSA/C3K2模块,显著提升尾部类别识别能力。文章详细解析了Seesaw Loss的数学原理,并提供了可直接集成到YOLO11的PyTorch实现代码,为长尾分布下的目标检测提供了实用解决方 阅读详情

相关推荐

AUTOSAR Dem模块实战配置:从理论到代码生成的完整指南

本文提供了一份AUTOSAR Dem模块从理论到代码生成的完整实战配置指南。文章详细拆解了配置流程,涵盖Dem模块的核心角色、通用骨架搭建、事件与DTC映射、消抖机制配置,以及与BswM、EcuM、DCM等模块的联调方法,旨在帮助汽车电子工程师快速掌握诊断事件管理的关键配置步骤,生成可运行的代码。

3c4x5z6v7b的博客 454

Spring Boot整合Swagger2详解

Spring Boot整合Swagger2详解

Charge8的博客 1万+

海康工业相机使用:常见问题及解决方法

工业相机在使用过程中,经常会因为操作不当、使用环境不当等原因出现一些问题,本篇教程,主要针对海康工业相机常见问题及其定位方法做以简单介绍,希望可以帮助大家。 注:该教程对其他品牌工业相机“常见问题”排查,也具备一定的指导意义。 当出现无法通过客户端发现设备或者无法预览图像等问题,先确认当前的运行环境是否满足以下要求: 确认装有相机驱动软件的电脑网卡为千兆网卡(Gige接口相机); 确认网卡是否已开启巨型帧; 确认电脑与网口相机之间的网络链路为千兆; 确认装有相机驱动软件的USB接口为3...

Cche的博客 3万+

springboot 整合swagger2

相信很多人都用过postman,使用postman其实可以很简便的进行接口调试,但是呢,每次还要写url,以及要添加参数名字(很容易写错)。所以啊,swagger2优势就体现出来了,它只需要添加少量注解即可在项目下调试接口,并且可以根据项目是否是测试还是生产环境,可以显示或禁止页面接口调试,介绍就到这里,开始写整合部分。 一.maven添加依赖 此处使用的是2.7.0版本,下面的ui二选一即可...

XiChuan的博客 2148

Ubuntu安装opencv4.5(自己安装过程详细)

1.下载opencv 在opencv官网下载source版,下载链接 http://opencv.org/releases.html。别下载错版本 下载过程就不多说了。 2.安装过程 2.1解压 unzip opencv-4.5.0.zip cd opencv-4.5.0 2.2安装依赖的库 sudo apt-get install cmake sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-

weixin_45629790的博客 1万+

Polyworks脚本开发学习笔记(十五)-用Python连接Polyworks的COM组件

Polyworks脚本开发学习笔记(十五)-利用Python连接Polyworks的COM组件

qq_43662503的博客 2499

springboot快速集成apifox

以上就是在 Spring Boot 中快速集成 APIFox 的步骤。在需要使用 APIFox 的地方注入。2、配置 APIFox。3、使用 APIFox。

weixin_43538316的博客 2923

学习STM32的无人机控制

设计并实现无人机控制系统,使用STM32单片机进行控制。无人机控制系统主要包括飞行控制、姿态控制、定位导航等功能。以下是一个基于STM32的无人机控制系统的代码案例。以上是一个基于STM32的无人机控制系统的代码案例,包括飞行控制、姿态控制和定位导航等功能。请根据实际情况进行修改和完善。

qq_67153941的博客 837

spring boot 整合 springfox(swaager)

spring boot 整合 springfox(swaager) 1、引入依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> </dependency> 2、在启动类上添加注解 @EnableSwagger2 在启动类添加以上注解 3、创建配置文件,配置相关信息 /** *

cmy_top的博客 2080

华为OD机试 C++【TLV解析】

这里的valueOffset指的是value在整串消息里的起始位置(从0开始数)。这表示tag是15(十六进制的0F),length是4,接着的8个字符是value的内容。你收到了一串由两端设备传递的TLV格式的消息,现在你需要根据这串消息生成一个对应的(tag, length, valueOffset)列表。tag是15,对应的数据长度为4,value从第3个字节开始,所以偏移量为2。第二行:一个数字n,表示我们给出的tag的数量(0 < n < 1000)。第一行:一串消息,长度不超过10000。

wtswts1232的博客 481

【2DWT:2维离散小波变换(附Pytorch代码)】

图像信号具有非平稳特性,无法使用一种确定的数学模型来描述,而小波变换的多分辨率分析特性很好地解决了这个问题。小波变化的多分辨率特性使其既可以高效描述图像的平坦区域(低频信息、全局信息),也可以有效处理图像信号的局部突变(高频信息,即图像的边缘轮廓等部分)。小波变换在空域和频域同时具有良好的局部性,使其可以很好地聚焦到图像的任意细节。

NorthSmile的博客 1万+

SpringBoot集成Swagger2

SpringBoot集成Swagger Swagger简介 配置Swagger2 swagger扫描指定的包下的接口 配置多个分组 swagger里的controller方法加注释 Swagger实体类加注释

东风麦芽糖 2355

TC3XX - MCAL知识点(三十三):基于EB Tresos配置Tc3xx的MCAL代码如何产生中心对称的三相六路发波波形

本文用于记录如何在英飞凌 tc3xx 芯片的应用开发中,借助 EB Tresos 配置工具生成的配置代码与 MCAL 源码相结合,进而实现三相六路中心对称互补的 PWM 输出效果。外部资源需求:EB Tresos23.0以上、Tasking\Hightec编译器、示波器\逻辑分析仪。

梦想技术家 1206

SpringBoot集成springfox-swagger2构建restful API

Springboot集成springfox-swagger2构建restful API,Springmvc集成springfox-swagger2构建restful API,

兴国-为梦想而战 3万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

SpringBoot集成Swagger(Springfox)自动生成API文档

也许,你事先需要了解Swagger和Springfox的关系,然后我默认大家都在使用SpringBoot,并且对Java和Spring有一定的开发基础。 万物皆麻烦,直接上代码 1.pom文件 &amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;amp;gt; &amp;amp;lt;project xmlns=&a

枣面包的博客 1万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

【swagger2】SpringBoot集成springfox-swagger2构建restful API

springboot整合swagger2 文章SpringMVC集成springfox-swagger2构建restful API简单写了如何在springmvc中集成swagger2。这边记录下在springboot中如何集成swagger2,其实使用基本相同。 一、引入依赖 使用maven,在pom.xml中引用相关依赖(swagger版本2.4.0,springboot的版本为2.1.5.RELEASE): <dependency> <groupId>io..

ooooooooooooooxiaosu的博客 371

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

使用 SpringFox、Swagger2Markup、Spring-Restdoc和 Maven 构建 RESTful API文档

转: 使用 SpringFox、Swagger2Markup、Spring-Restdoc和 Maven 构建 RESTful API文档 有时候我们的的RESTful API就有可能要面对多个开发人员或多个开发团队:IOS开发、Android开发或是前端开发等。为了减少与其他团队平时开发期间的频繁沟通成本,我们需要构造相应的开发文档进行说明。利用传统的方法构造的文档即耗时耗力,利用Sw...

漏水亦凡的专栏 867

Swagger使用及Springfox+SpringBoot解决404问题

Swagger简介及使用概要说明THE WORLD’S MOST POPULAR API FRAMEWORK Swagger is a powerful open source framework backed by a large ecosystem of tools that helps you design, build, document, and consume your RE

xiaoman的博客 2万+

SpringBoot+SpringFox完成API管理

SpringBoot+SpringFox完成API管理的一个HelloWorld SpringFox介绍 swagger算是springfox的前身。它可以跟据业务代码自动生成相关的api接口文档,尤其用于restful风格中的项目,开发人员几乎可以不用专门去维护rest api,这个框架可以自动为你的业务代码生成restfut风格的api,而且还提供相应的测试界面,自动显示json格式的响应...

lijian12388806的博客 9300

SpringBoot学习历程(八):集成Swagger2(2.9.2版本)构建RESTful API

SpringBoot学习历程(八):集成Swagger2构建RESTful API

RabbitInTheGrass的博客 783

SpringFox 3尝鲜 集成SpringBoot生成Swagger接口文档

SpringFox简介 SpringFox是一个开源的API Doc的框架, 它的前身是swagger-springmvc,可以将我们的Controller中的方法以文档的形式展现。官方定义为:Automated JSON API documentation for API's built with Spring。 SpringFox3快速应用 maven项目依赖 <dependency> <groupId>io.springfox</groupI...

在每次的突破中遇见更好的自己 4123

【SpringBoot框架篇】17.使用swagger2生成RESTful风格的接口文档

使用swagger2生成RESTful风格的接口文档

皓亮君的博客 2363

SpringBoot应用生成RESTful API文档 - Swagger 2.0、OAS 3.0、Springfox、Springdoc、Smart-doc

本文主要介绍了当下Java后端较为流行的API生成工具(Swagger2,OAS3,springfox,springdoc,smart-doc),综合比较后推荐采用smart-doc openapi模式。

罗小爬的技术宝书 7072

SpringBoot中集成Swagger2

Swagger是非常流行的API框架,能够自动生成RESTFul 风格的API文档,还可以在线测试后台接口。使用Swagger你只需要按照它的规范去定义接口及接口相关的信息,再通过Swagger衍生出来的一系列项目和工具,就可以做到生成各种格式的接口文档,以及在线接口调试页面等等。前后端分离的开发模式下,前端通过后端的API文档来进行开发和联调,效率更高。

这是我的笔记本,记录学习历程,分享学习经验,菜鸡一枚,感谢支持! 1444

springfox-swagger(swagger2)+Springboot

1.下载jar包(spring-boot-starter-parent版本2.1.3.RELEASE) <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artif...

cocosun 1320

SpringBoot2.x 集成 Swagger3

Swagger是一款RESTFUL接口的文档在线自动生成加功能测试的软件,提供描述、生产、消费和可视化RESTful Web Service。Swagger也是一个api文档维护组织,后来成为了OpenAPI(一个业界的api文档标准)标准的主要定义者,现在最新的版本为17年发布的Swagger3(OpenAPI3)。基于OpenAPI2的Swagger2已于2017年停止维护。

RtxTitanV的博客 1739
上一篇: Docker的真实应用场景
下一篇: spring boot 集成 swagger2
加州小熊
博客等级 码龄16年 46粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值