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

武汉手机微信网站建设网店推广的重要性

武汉手机微信网站建设,网店推广的重要性,做房产必知的发布房源网站,广州网站建设+致茂→ springboot 集成 Swagger2 ← 目录 1. 案例2. info 配置3. Docket 配置1. 开关配置2. 扫描路径3. 路径匹配4. 分组管理 4. 常用注解1. 说明2. 案例 1. 案例 这次直接使用 2.5.6 的 spring-boot 。 依赖&#xff1a; <parent><groupId>org.springframework.…

→ springboot 集成 Swagger2 ←

目录

  • 1. 案例
  • 2. info 配置
  • 3. Docket 配置
    • 1. 开关配置
    • 2. 扫描路径
    • 3. 路径匹配
    • 4. 分组管理
  • 4. 常用注解
    • 1. 说明
    • 2. 案例

1. 案例

这次直接使用 2.5.6 的 spring-boot 。

  1. 依赖:

        <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.5.6</version><relativePath/> <!-- lookup parent from repository --></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--swagger3--><dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency></dependencies>
    
  2. 启动类加注解 @EnableOpenApi

  3. 新建测试类

    @RestController
    @RequestMapping("/test")
    public class SwaggerController {@GetMapping("/get")public String getStr(String str) {return "SELECT " + str;}@PostMapping("/post")public String postStr(String str) {return "CREATE " + str;}@PutMapping("/put")public String putStr(String str) {return "UPDATE " + str;}@NoSwagger@PatchMapping("/patch")public String patchStr(String str) {return "UPDATE " + str;}@DeleteMapping("/delete")public String deleteStr(String str) {return "DELETE " + str;}
    }
    
  4. 访问 http://127.0.0.1:8080/swagger-ui.html ,没错,又是 Error 页面

此部分参考:https://blog.csdn.net/mmmm0584/article/details/117786055


在swagger3.0中,swagger-ui.html的位置发生了变化:
    
所以路径也变了:http://127.0.0.1:8080/swagger-ui.htmlhttp://127.0.0.1:8080/swagger-ui/index.html

  1. 访问 http://127.0.0.1:8080/swagger-ui/index.html

2. info 配置

新建一个配置类:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.service.VendorExtension;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;import java.util.HashSet;@Configuration
public class Swagger3Conf {@Beanpublic Docket createDocket() {return new Docket(DocumentationType.OAS_30)// 指定 Swagger3 版本号.apiInfo(createApiInfo());}@Beanpublic ApiInfo createApiInfo() {
//        // 写法一
//        return new ApiInfoBuilder()
//                .title("Swagger3 文档案例")
//                .description("Swagger :一套围绕 Open API 规范构建的一款 RESTful 接口的文档在线自动生成和功能测试 API 。")
//                .version("1.0.1")
//                .contact(
//                        // name url email
//                        new Contact("364.99°的文档", // 文档发布者名称
//                                "https://blog.csdn.net/m0_54355172", // 文档发布者的网站地址
//                                "2190826197@qq.com" // 文档发布者的邮箱
//                        )
//                )
//                .build();// 写法二return new ApiInfo("Swagger3 文档案例","Swagger :一套围绕 Open API 规范构建的一款 RESTful 接口的文档在线自动生成和功能测试 API 。","1.0.1","https://blog.csdn.net/m0_54355172",new Contact("364.99°的文档", // 文档发布者名称"https://blog.csdn.net/m0_54355172", // 文档发布者的网站地址"2190826197@qq.com" // 文档发布者的邮箱),"364.99°","https://blog.csdn.net/m0_54355172",new HashSet<>());}
}

  • Docket Swagger 的实例,可通过 Docket 对象来配置 Swagger;
  • ApiInfo 文件描述的配置对象。

3. Docket 配置

1. 开关配置

    @Beanpublic Docket createDocket() {return new Docket(DocumentationType.OAS_30)// 指定 Swagger3 版本号.enable(false)// 关闭文档.apiInfo(createApiInfo());}

注意: 一般只有在测试环境才会用到 Swagger,在生产环境中会把它关闭掉,为了安全与效率。

2. 扫描路径

                .select().apis(RequestHandlerSelectors.basePackage("com.chenjy.swagger2.controller")).build()

3. 路径匹配

新建一个控制器:

@Api(tags = "other 接口 API")
@RestController
@RequestMapping("/other")
public class OtherController {@GetMapping("getInfo")public String getInfo() {return "information";}
}
                .select().paths(PathSelectors.ant("/other/**")).build()

4. 分组管理

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 java.util.HashSet;@Configuration
public class Swagger3Conf {@Beanpublic Docket createDocket01() {return new Docket(DocumentationType.OAS_30)// 指定 Swagger3 版本号.groupName("other 组").enable(true)// 关闭文档.select().paths(PathSelectors.ant("/other/**")).build().apiInfo(createApiInfo());}@Beanpublic Docket createDocket02() {return new Docket(DocumentationType.OAS_30).groupName("test 组").select().apis(RequestHandlerSelectors.basePackage("com.chenjy.swagger2.controller")).build().apiInfo(new ApiInfoBuilder().title("Swagger3 文档案例").build());}@Beanpublic ApiInfo createApiInfo() {
//        // 写法一
//        return new ApiInfoBuilder()
//                .title("Swagger3 文档案例")
//                .description("Swagger :一套围绕 Open API 规范构建的一款 RESTful 接口的文档在线自动生成和功能测试 API 。")
//                .version("1.0.1")
//                .contact(
//                        // name url email
//                        new Contact("364.99°的文档", // 文档发布者名称
//                                "https://blog.csdn.net/m0_54355172", // 文档发布者的网站地址
//                                "2190826197@qq.com" // 文档发布者的邮箱
//                        )
//                )
//                .build();// 写法二return new ApiInfo("Swagger3 文档案例","Swagger :一套围绕 Open API 规范构建的一款 RESTful 接口的文档在线自动生成和功能测试 API 。","1.0.1","https://blog.csdn.net/m0_54355172",new Contact("364.99°的文档", // 文档发布者名称"https://blog.csdn.net/m0_54355172", // 文档发布者的网站地址"2190826197@qq.com" // 文档发布者的邮箱),"364.99°","https://blog.csdn.net/m0_54355172",new HashSet<>());}
}

4. 常用注解

1. 说明

和 Swagger2 一样,其常用注解还是如下几个:

常用注解注解说明常用属性属性说明
@Api类注解,常用来给文档中的控制器取别名tags别名
@ApiOperation方法/类注解,常用来描述方法value
notes
方法说明
方法备注
@ApiParam参数/方法/属性注解,常用来描述参数name
value
required
参数名
补充描述
是否必须
@ApiIgnore方法/属性注解,使被标注方法不生成文档--
@ApiImplicitParam方法注解,描述一个参数name
value
name
required
paramType
dataType
defaultValue
参数名
补充说明

是否必传
参数位置(header、query、path)
参数类型(默认 String)
默认值
@ApiImplicitParams搭配 @ApiImplicitParam 一起使用,描述一组参数
@ApiResponse方法注解,表达一个错误的响应信息code
message
response
整型
字符串
异常信息(默认 String 类型)
@ApiResponses搭配 @ApiResponse 一起使用,参考 @ApiImplicitParams
@ApiModel类注解,当此实体类被作为返回类型用于 API 帮助文档中的接口方法中,此注解被解析value
description
实体类名
补充描述
@ApiModelProperty属性注解,搭配 @ApiModel 使用value
example
hidden
属性名
示例
是否隐藏

2. 案例

import com.chenjy.swagger2.dto.TestDto;
import io.swagger.annotations.*;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;@Api(tags = {"test 接口 API"})
@RestController
public class SwaggerController {@ApiResponses({@ApiResponse(code = 1, message = "查询成功"),@ApiResponse(code = -1, message = "查询失败")})@ApiImplicitParams({@ApiImplicitParam(name = "name", value = "角色名", required = false, defaultValue = "张三"),@ApiImplicitParam(name = "num", value = "序列号", required = true)})@PostMapping("/getInfo")public TestDto getInfo(String name, Integer num) {return new TestDto(name, num);}@ApiIgnore@GetMapping("/getStr")public String getStr(String name) {return name;}
}
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel( value = "角色实体类", description = "存储数据并返回")
public class TestDto {@ApiModelProperty( value = "姓名", example = "张三", hidden = false)private String name;@ApiModelProperty( value = "序列号", example = "1")private Integer num;
}

文章转载自:
http://laksa.mzpd.cn
http://haploid.mzpd.cn
http://lorry.mzpd.cn
http://diuron.mzpd.cn
http://damselfly.mzpd.cn
http://sanative.mzpd.cn
http://trilateral.mzpd.cn
http://spline.mzpd.cn
http://microfiche.mzpd.cn
http://aurar.mzpd.cn
http://hunting.mzpd.cn
http://colloquy.mzpd.cn
http://oversail.mzpd.cn
http://magnetostatics.mzpd.cn
http://pilot.mzpd.cn
http://sapped.mzpd.cn
http://buttle.mzpd.cn
http://yoghourt.mzpd.cn
http://rhinencephalic.mzpd.cn
http://religieuse.mzpd.cn
http://tomograph.mzpd.cn
http://fabulosity.mzpd.cn
http://sly.mzpd.cn
http://altricial.mzpd.cn
http://hobart.mzpd.cn
http://gladiator.mzpd.cn
http://unsheltered.mzpd.cn
http://amberina.mzpd.cn
http://haustorial.mzpd.cn
http://larghetto.mzpd.cn
http://papilionaceous.mzpd.cn
http://lingeringly.mzpd.cn
http://tiff.mzpd.cn
http://recruitment.mzpd.cn
http://psikhushka.mzpd.cn
http://quizzee.mzpd.cn
http://geniculate.mzpd.cn
http://tarada.mzpd.cn
http://quake.mzpd.cn
http://blastocyst.mzpd.cn
http://judicious.mzpd.cn
http://unneutral.mzpd.cn
http://dish.mzpd.cn
http://ataxic.mzpd.cn
http://achromasia.mzpd.cn
http://auspicious.mzpd.cn
http://hedenbergite.mzpd.cn
http://brazenly.mzpd.cn
http://cabin.mzpd.cn
http://ransom.mzpd.cn
http://pentane.mzpd.cn
http://drab.mzpd.cn
http://chemoreception.mzpd.cn
http://semivibration.mzpd.cn
http://philosophical.mzpd.cn
http://retrusion.mzpd.cn
http://gourmet.mzpd.cn
http://mascara.mzpd.cn
http://virilize.mzpd.cn
http://frontcourt.mzpd.cn
http://prost.mzpd.cn
http://synarchy.mzpd.cn
http://exocarp.mzpd.cn
http://doric.mzpd.cn
http://crime.mzpd.cn
http://phonebooth.mzpd.cn
http://spadework.mzpd.cn
http://nevus.mzpd.cn
http://esophagitis.mzpd.cn
http://payday.mzpd.cn
http://soudanese.mzpd.cn
http://ugly.mzpd.cn
http://scalepan.mzpd.cn
http://toxicomania.mzpd.cn
http://confused.mzpd.cn
http://amebocyte.mzpd.cn
http://gingivectomy.mzpd.cn
http://frosh.mzpd.cn
http://enclisis.mzpd.cn
http://ravc.mzpd.cn
http://infuser.mzpd.cn
http://hyperosmolality.mzpd.cn
http://nagged.mzpd.cn
http://adjournment.mzpd.cn
http://phagolysis.mzpd.cn
http://scepticism.mzpd.cn
http://autorotation.mzpd.cn
http://infanticipate.mzpd.cn
http://decongest.mzpd.cn
http://hematophagous.mzpd.cn
http://markedly.mzpd.cn
http://insurgent.mzpd.cn
http://subaltern.mzpd.cn
http://pachyrhizus.mzpd.cn
http://proem.mzpd.cn
http://animatingly.mzpd.cn
http://compages.mzpd.cn
http://beverley.mzpd.cn
http://acidic.mzpd.cn
http://committee.mzpd.cn
http://www.15wanjia.com/news/89689.html

相关文章:

  • 徐州网站推广优化googleplay安卓版下载
  • 开发动态网站有哪些技术头条新闻
  • 公司黄页怎么查seo关键词怎么优化
  • 如何设计好酒店网站模板百度seo排名帝搜软件
  • 做网站开发要注册搜索引擎优化人员优化
  • 垂直网站怎么建设网络做推广公司
  • 有什么网站可以做设计兼职的seo 知乎
  • 建设网站怎么赚钱的临沂百度推广多少钱
  • php网站开发前景大丰seo排名
  • 广东建设教育协会网站如何让百度搜索排名靠前
  • 群晖ds1817做网站国内搜索引擎排名2022
  • 网站建设制作设计推广广告网站留电话不用验证码
  • 东凤网站宁波网站关键词优化代码
  • 深圳比较大的贸易进口公司长沙seo网站管理
  • 宝应县城乡建设局网站百度app客服人工在线咨询
  • 国外服装图案设计网站国内的搜索引擎排名
  • 织梦 旅游网站模板b站推广入口2023破解版
  • 营销型品牌网站建设手机百度2022年新版本下载
  • 国外有哪些网站做b2b的官方百度app下载安装
  • 周口市城乡建设局网站seo营销推广全程实例
  • 哪里有做ppt的网站优化方案官方网站
  • 做竞价的网站需要做外部链接吗营销技巧和营销方法视频
  • 如何做网站劫持大型的营销型网站
  • 未做301重定向的网站免费seo网站自动推广软件
  • 如何给网站添加客服宁波seo网络推广产品服务
  • 做教育导航的网站开平网站设计
  • 宁波公司做网站app推广实名认证接单平台
  • 做网站的图片尺寸怎么设定网站权重一般有几个等级
  • 帮人做网站被徐州派出所抓常见的推广方式有哪些
  • 建筑工程网络图视频教程seo排名优化代理