您现在的位置是:主页 > news > 怎么用腾讯云服务器做网站/网络营销战略有什么用

怎么用腾讯云服务器做网站/网络营销战略有什么用

admin2025/4/21 22:05:25news

简介怎么用腾讯云服务器做网站,网络营销战略有什么用,网站标题怎么做,网站建设 网络推广 网站优化一、Swagger1、什么是 Swagger ?Swagger 是一个规范和完整的框架,用于生成、描述、调用以及可视化的 Restful 风格的 Web 服务。简单的理解:是一款 REST API 文档生成工具,生成在线的接口文档,方便接口测试。2、为什么…

怎么用腾讯云服务器做网站,网络营销战略有什么用,网站标题怎么做,网站建设 网络推广 网站优化一、Swagger1、什么是 Swagger ?Swagger 是一个规范和完整的框架,用于生成、描述、调用以及可视化的 Restful 风格的 Web 服务。简单的理解:是一款 REST API 文档生成工具,生成在线的接口文档,方便接口测试。2、为什么…

一、Swagger

1、什么是 Swagger ?

Swagger 是一个规范和完整的框架,用于生成、描述、调用以及可视化的 Restful 风格的 Web 服务。

简单的理解:是一款 REST API 文档生成工具,生成在线的接口文档,方便接口测试。

2、为什么使用 Swagger?

前后端分离开发时,为了方便前后端接口调用规范,需要提供一个接口文档,但是维护这个接口文档是一个及其繁琐的事情,可能一不小心就忘记更新该文档从而导致前后端接口调用失败。

Swagger 就是为了解决这个问题而出现的(在线接口文档),其在接口方法上定义注解,并根据注解形成一个 html 页面,每次接口修改,这个 html 页面就会发生相应的改变,从而保证了接口文档的正确性。通过该 html 页面,可以很方便、清楚的知道这个接口的功能,并测试。

3、SpringBoot 整合 Swagger?

(1)Step1:

导入依赖 jar 包。

io.springfox

springfox-swagger2

2.9.2

io.springfox

springfox-swagger-ui

2.9.2

(2)Step2:

配置 swagger 插件。

编写一个配置类,实现 WebMvcConfigurer 接口(可以不实现该接口),用于配置 Swagger 相关信息。

@EnableSwagger2 用于开启 Swagger。

packagecom.lyh.test.test_mybatis_plus.config;importio.swagger.annotations.ApiOperation;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importorg.springframework.web.servlet.config.annotation.WebMvcConfigurer;importspringfox.documentation.builders.ApiInfoBuilder;importspringfox.documentation.builders.PathSelectors;importspringfox.documentation.builders.RequestHandlerSelectors;importspringfox.documentation.service.ApiInfo;importspringfox.documentation.spi.DocumentationType;importspringfox.documentation.spring.web.plugins.Docket;importspringfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration

@EnableSwagger2public class SwaggerConfig implementsWebMvcConfigurer {

@BeanpublicDocket createRestApi() {return newDocket(DocumentationType.SWAGGER_2)

.apiInfo(apiInfo())

.select()//加了ApiOperation注解的类,才会生成接口文档

.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))//指定包下的类,才生成接口文档

.apis(RequestHandlerSelectors.basePackage("com.lyh.test.test_mybatis_plus.controller"))

.paths(PathSelectors.any())

.build();

}privateApiInfo apiInfo() {return newApiInfoBuilder()

.title("Swagger 测试")

.description("Swagger 测试文档")

.termsOfServiceUrl("https://www.cnblogs.com/l-y-h/")

.version("1.0.0")

.build();

}

}

5b2f87b70bffd8dc345fd5a9014396ce.png

(3)启动服务,并访问 swagger-ui.html 页面。

访问 http://localhost:8080/swagger-ui.html,显示如下,能够进入在线接口文档页面,由于并没有在方法上添加注解,所以接口方法都没有显示。

a7e0f1a067b9f584b89151a13079cfbc.png

(4)给接口方法添加相关注解。

由于配置了 @ApiOperation 注解标注的方法才能被扫描到,所以在方法上添加该注解。

@RestController

@RequestMapping("/test_mybatis_plus/user")public classUserController {

@AutowiredprivateUserService userService;

@ApiOperation("获取所有用户")

@GetMapping("/test")publicResult list() {return Result.ok().data("items", userService.list());

}

}

0fe9159946870bcec28efdeab25985f6.png

(5)重启服务,再次访问 swagger-ui.html 页面。

8b16648736ab6fc48a10b720b7d45cea.png

515c8999dfb476e04ef248d6c1b09243.png

1574708b76f16824b3cc150309f10e69.png

7bdf929a04e8a7c249d30f0fe2c2c800.png

二、Swagger 注解、配置

1、Swagger 常用注解

(1)常用注解

swagger 通过注解去实现接口文档,这些注解可以标注接口名,请求方法,参数,返回信息等。

@Api 标注在 controller 类上,用于修饰 controller

@ApiOperation 标注在接口方法上,用于修饰 接口方法

@ApiParam 标注在接口参数上,用于修饰 参数

@ApiImplicitParam 标注在接口参数上,用于修饰 一个请求参数

@ApiImplicitParams 标注在接口参数上,用于修饰 多个请求参数(@ApiImplicitParam)

@ApiIgnore 标注在方法、参数上,表示忽略该方法、参数

@ApiModel 标注在实体类上,用来修饰实体类

@ApiModelProperty 标注在实体类的属性上,用于修饰实体类的属性。

(2)@Api  @ApiOperation @ApiImplicitParam @ApiImplicitParams 举例:

importcom.lyh.test.test_mybatis_plus.entity.User;importcom.lyh.test.test_mybatis_plus.service.UserService;importcom.lyh.test.test_mybatis_plus.util.Result;importio.swagger.annotations.Api;importio.swagger.annotations.ApiImplicitParam;importio.swagger.annotations.ApiImplicitParams;importio.swagger.annotations.ApiOperation;importorg.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.*;/***

* 前端控制器

*

*

*@authorlyh

*@since2020-05-08*/@RestController

@RequestMapping("/test_mybatis_plus/user")

@Api(value= "UserController", tags = "用户接口文档")public classUserController {

@AutowiredprivateUserService userService;

@ApiOperation("获取所有用户")

@GetMapping("/list")publicResult list() {return Result.ok().data("items", userService.list());

}//paramType ="query" 对应 @RequestParam//paramType ="path" 对应 @PathVariable//paramType ="body" 对应 @RequestBody 不经常用//paramType ="header" 对应 @RequestHeader

@ApiImplicitParams({

@ApiImplicitParam(name= "id", required = false, value = "用户 ID", paramType ="query", dataType = "Long"),

@ApiImplicitParam(name= "user", required = false, value = "用户信息", paramType ="body", dataType = "User")

})

@ApiOperation("新增用户")

@PutMapping("/update")public Result update(@RequestBody User user, @RequestParam(required = false) Long id) {

System.out.println("==================");

System.out.println(id);if(userService.save(user)) {return Result.ok().message("数据更新成功");

}else{return Result.error().message("数据更新失败");

}

}

}

814b0541973b2ab2fd6b932c69b2ff15.png

c98d473d37ed926d6a942a1f28e7cee4.png

(3)@ApiModel  、@ApiModelProperty 举例

@Data

@ApiModel("统一结果返回类结构")public classResult {/*** 响应是否成功,true 为成功,false 为失败*/@ApiModelProperty("响应是否成功,true 为成功,false 为失败")privateBoolean success;/*** 响应状态码, 200 成功,500 系统异常*/@ApiModelProperty("响应状态码, 200 成功,500 系统异常")privateInteger code;/*** 响应消息*/@ApiModelProperty("响应消息")privateString message;/*** 响应数据*/@ApiModelProperty("响应数据")private Map data = new HashMap<>();

}

1460f13420bb48aca090a7f60339c56f.png

3ad7fdb5a41fee64c7388b79eebc2a98.png

2、Swagger 配置

(1)简介

上面简单了解了下 swagger 常用注解,此处简单介绍一下 swagger 的配置类。

(2)配置类举例

根据项目情况修改 apiInfo、apis、paths 等信息。

其中:

apiInfo 用于定义 接口文档的基本信息。

apis 用于定义 接口扫描规则。

paths 用于定义 路径过滤规则。

@Configuration

@EnableSwagger2public class SwaggerConfig implementsWebMvcConfigurer {

@BeanpublicDocket createRestApi() {return newDocket(DocumentationType.SWAGGER_2)

.apiInfo(apiInfo())

.select()//加了ApiOperation注解的类,才会生成接口文档

.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))//指定包下的类,才生成接口文档

.apis(RequestHandlerSelectors.basePackage("com.lyh.test.test_mybatis_plus.controller"))

.paths(PathSelectors.any())

.build();

}privateApiInfo apiInfo() {return newApiInfoBuilder()

.title("Swagger 测试")

.description("Swagger 测试文档")

.termsOfServiceUrl("https://www.cnblogs.com/l-y-h/")

.version("1.0.0")

.build();

}

}

(3)分析

Step1:简单了解一下注解。

@EnableSwagger2 注解用于开启 swagger。

@Bean 注解标注 createRestApi 方法用于实例 Docket 对象(文档插件)并交给 Spring 容器进行管理。

Step2:简单了解一下 apiInfo。

该方法用于定义 API 文档的基本信息。

【属性简单介绍:】

title 标题,默认为 Api Documentation

version 版本,默认为1.0description 描述信息,默认为 Api Documentation

termsOfServiceUrl 服务地址,默认为 urn:tos

license 许可证,默认为 Apache2.0licenseUrl 许可证地址,默认为 http://www.apache.org/licenses/LICENSE-2.0

contact 定义作者信息

【举例:】privateApiInfo apiInfo() {return newApiInfoBuilder()

.title("后台管理系统 API 文档")

.description("本文档描述了后台管理系统相关接口的定义")

.termsOfServiceUrl("https://www.cnblogs.com/l-y-h/")

.version("1.0.0")

.contact(new Contact("lyh", "https://www.cnblogs.com/l-y-h/", "13865561381@163.com"))

.build();

}

b0001ea8f1108e95885733af5b06a74c.png

Step3:简单了解一下 Docket

Docket 实现了 DocumentationPlugin 接口,即文档插件。

Docket 常用方法介绍。

【Docket 常用方法:】

apiInfo() 用于定义接口文档的基本信息。

enabled() 用于定义 swagger 是否使用。

select() 实例化一个 ApiSelectorBuilder,调用其 build 方法返回一个 Docket 对象。

【ApiSelectorBuilder 常用方法:】

apis() 用于定义接口扫描方式(可以使用 RequestHandlerSelectors 指定扫描规则)

paths() 用于过滤路径(可以使用 PathSelectors 去指定过滤规则)。

build() 返回一个 Docket 对象

注:

RequestHandlerSelectors 常用方法:

any() 扫描全部

none() 全部不扫描

withMethodAnnotation() 根据方法上的注解扫描

withClassAnnotation() 根据类上的注解扫描

basePackage() 指定要扫描的包

PathSelectors 常用方法:

any() 全部通过

none() 全部不通过

regex() 根据正则表达式匹配是否通过

【举例:】

@Configuration

@EnableSwagger2public class SwaggerConfig implementsWebMvcConfigurer {

@Value("${spring.profiles.active:#{null}}")privateString env;

@BeanpublicDocket createRestApi() {return newDocket(DocumentationType.SWAGGER_2)

.apiInfo(apiInfo())//指定是否开启 swagger(如下,生产环境时不执行 swagger)

.enable("prod".equals(env) ? false : true)//指定分组名

.groupName("user")

.select()//加了ApiOperation注解的类,才会生成接口文档

.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))//指定包下的类,才生成接口文档

.apis(RequestHandlerSelectors.basePackage("com.lyh.test.test_mybatis_plus.controller"))//不过滤接口

.paths(PathSelectors.any())

.build();

}

}

fcd3caf19d6cfde7726f8be04f1e6209.png