如何优化建设银陕西省分行网站与珠三角网站建设以提升用户体验?
摘要:建设银陕西省分行网站,珠三角网站建设,ps怎么排版规划设计网站,云南网站设计联系方式一、Swagger2介绍 前后端分离开发模式中,api文档是最好的沟通方式。 Swagger 是一个规范和完整的框架&
建设银陕西省分行网站,珠三角网站建设,ps怎么排版规划设计网站,云南网站设计联系方式一、Swagger2介绍
前后端分离开发模式中#xff0c;api文档是最好的沟通方式。
Swagger 是一个规范和完整的框架#xff0c;用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。
及时性 (接口变更后#xff0c;能够及时准确地通知相关前后端开发人员)规范性 (并且保…一、Swagger2介绍
前后端分离开发模式中api文档是最好的沟通方式。
Swagger 是一个规范和完整的框架用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。
及时性 (接口变更后能够及时准确地通知相关前后端开发人员)规范性 (并且保证接口的规范性如接口的地址请求方式参数及响应格式和错误信息)一致性 (接口信息一致不会出现因开发人员拿到的文档版本不一致而出现分歧)可测性 (直接在接口文档上进行测试以方便理解业务) 二、配置Swagger2
1、为swagger创建模块结构到时候其他模块想要调用直接引入该模块就行
1.1 创建common模块
在guli-parent下创建模块common 1.2、在common下面创建子模块service-base 2、导入依赖和配置类
2.1、在common的pom.xml引入依赖 dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactIdscopeprovided/scope/dependency!--mybatis-plus--dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdscopeprovided/scope/dependency!--lombok用来简化实体类需要安装lombok插件--dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdscopeprovided/scope/dependency!--swagger--dependencygroupIdio.springfox/groupIdartifactIdspringfox-swagger2/artifactIdscopeprovided/scope/dependencydependencygroupIdio.springfox/groupIdartifactIdspringfox-swagger-ui/artifactIdscopeprovided/scope/dependency!-- redis --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId/dependency!-- spring2.X集成redis所需common-pool2dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-pool2/artifactIdversion2.6.0/version/dependency--/dependencies 2.2、在模块service-base中创建swagger的配置类
创建包com.atguigu.servicebase.config创建类SwaggerConfig基本不用怎么改。其中创建了一个bean就是Docket对象用于swagger的正常使用。
package com.atguigu.servicebase.config;import com.google.common.base.Predicates;
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.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 SwaggerConfig {Beanpublic Docket webApiConfig() {return new Docket(DocumentationType.SWAGGER_2).groupName(webApi).apiInfo(webApiInfo()).select().paths(Predicates.not(PathSelectors.regex(/admin/.*))).paths(Predicates.not(PathSelectors.regex(/error.*))).build();}private ApiInfo webApiInfo() {return new ApiInfoBuilder().title(网站-课程中心API文档).description(本文档描述了课程中心微服务接口定义).version(1.0).contact(new Contact(Helen, http://atguigu.com,55317332qq.com)).build();}
} 3、其他项目使用该包
开启组件扫描
要使用swagger直接引用service-base模块即可但由于swagger里面有spring的组件注解比如我们有模块要引入swagger它里面的启动类EduApplication启动后只会扫描标红的这六个文件下的代码因此我们要能扫描到service-base模块
ComponentScan参考博客
https://blog.csdn.net/zxyOVO/article/details/130720065?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22130720065%22%2C%22source%22%3A%22zxyOVO%22%7D 因此要添加注解扫描到启动类上
ComponentScan(basePackages com.atguigu)
将com.atguigu组下的包全部进行注解扫描由于swagger.class在com.atguigu.service_base下因此swagger的spring注解也能扫描到了。 开始使用
在要引入该模块的地方添加引用依赖写在pom文件中 dependencygroupIdcom.atguigu/groupIdartifactIdservice_base/artifactIdversion0.0.1-SNAPSHOT/version/dependency 访问如下链接即可测试了api了
http://localhost:8001/swagger-ui.html 可选内容定义接口说明和参数说明
定义在类上Api
定义在方法上ApiOperation
定义在参数上ApiParam
Api(description讲师管理)
RestController
RequestMapping(/admin/edu/teacher)
public class TeacherAdminController {Autowiredprivate TeacherService teacherService;ApiOperation(value 所有讲师列表)GetMappingpublic ListTeacher list(){return teacherService.list(null);}ApiOperation(value 根据ID删除讲师)DeleteMapping({id})public boolean removeById(ApiParam(name id, value 讲师ID, required true)PathVariable String id){return teacherService.removeById(id);}
} 定义在实体类的属性上ApiModelProperty
定义在实体类上ApiModel
也就是实体类的都加model
ApiModel(value Teacher查询对象, description 讲师查询对象封装)
Data
public class TeacherQuery implements Serializable {private static final long serialVersionUID 1L;ApiModelProperty(value 教师名称,模糊查询)private String name;ApiModelProperty(value 头衔 1高级讲师 2首席讲师)private Integer level;ApiModelProperty(value 查询开始时间, example 2019-01-01 10:10:10)private String begin;//注意这里使用的是String类型前端传过来的数据无需进行类
型转换ApiModelProperty(value 查询结束时间, example 2019-12-01 10:10:10)private String end;
}
