CSDN话题挑战赛第2期
参赛话题:Java技术分享
目录
3.1.@ApiModel和@ApiModelProperty使用实例
3.2.@Api和@ApiOperation以及@ApiImplicitParams和@ApiImplicitParam实例展示
1.注入相关的依赖
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
2.相关的配置类
2.1.SwaggerConfig配置类
这里有个需要注意的地方如果该类只是个简单的Swagger配置类,就不能在该配置类上继承WebMvcConfigurationSupport,否则会找不到其它静态资源,所有页面都会出现404错误,因为如果继承了该类就必须实现addResourceHandlers方法,配置相关的静态资源映射。
@Configuration
@EnableSwagger2
@EnableKnife4j
public class Swagger2Config {
@Bean
public Docket docket() {
//文档信息
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.takeout.controller"))
.build();
}
/**
* 配置基本信息
*
* @return
*/
@Bean
public ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("瑞吉外卖")
.version("1.0")
.description("瑞吉外卖接口文档")
.build();
}
}
2.2.静态资源映射配置
@Configuration
@Slf4j
public class WebMvcConfig extends WebMvcConfigurationSupport {
/**
* 设置静态资源映射
*
* @param registry
*/
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**")
.addResourceLocations("classpath:/resources/")
.addResourceLocations("classpath:/static/")
.addResourceLocations("classpath:/public/");
registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
super.addResourceHandlers(registry);
}
2.3在权限验证这块,放开相关不需要处理的请求路径
3.Swagger常用注解
注解 | 说明 |
---|---|
@Api | 用在请求的类上,例如Controller,表示对类的说明 |
@ApiModel | 用在类上,通常是实体类,表示一个返回响应数据的信息 |
@ApiModelProperty | 用在属性上,描述响应类的属性 |
@ApiOperation | 用在请求方法上,说明方法的用途,作用 |
@ApiImplicitParams | 用在请求的方法上,表示一组参数说明 |
@ApiImplicitParam | 用在@ApiImplicitParams注解中,指定一个请求参数的各个方面 |
3.1.@ApiModel和@ApiModelProperty使用实例
@Data
@TableName("category")
@ApiModel("菜品及套餐分类")
public class Category implements Serializable {
private static final long serialVersionUID = 1L;
@TableId("id")
@ApiModelProperty("主键id")
private Long id;
//类型 1 菜品分类 2 套餐分类
@TableField("type")
@ApiModelProperty("类型 1 菜品分类 2 套餐分类")
private Integer type;
//分类名称
@TableField("name")
@ApiModelProperty("分类名称")
private String name;
//顺序
@TableField("sort")
@ApiModelProperty("顺序")
private Integer sort;
//创建时间
@TableField(fill = FieldFill.INSERT)
@ApiModelProperty("主键id")
private LocalDateTime createTime;
//更新时间
@TableField(fill = FieldFill.INSERT_UPDATE)
@ApiModelProperty("主键id")
private LocalDateTime updateTime;
//创建人
@TableField(fill = FieldFill.INSERT)
@ApiModelProperty("主键id")
private Long createUser;
//修改人
@TableField(fill = FieldFill.INSERT_UPDATE)
@ApiModelProperty("主键id")
private Long updateUser;
//是否删除
@TableField(value = "is_delete", fill = FieldFill.INSERT)
@TableLogic
@JsonIgnore
@ApiModelProperty("主键id")
private Integer isDeleted;
//修改版本
@TableField(fill = FieldFill.INSERT_UPDATE, update = "%s+1")
@Version
@JsonIgnore
@ApiModelProperty("主键id")
private Integer version;
}
3.2.@Api和@ApiOperation以及@ApiImplicitParams和@ApiImplicitParam实例展示
@Slf4j
@RequestMapping("/category")
@RestController
@Api(tags = "菜品及套餐分类接口")
public class CategoryController {
@Autowired
private CategoryService categoryService;
@PostMapping("/save")
@ApiOperation("菜品及套餐分类保存接口")
public R<String> save(@RequestBody CategoryBo categoryBo) {
log.info("categoryBo:" + categoryBo);
return categoryService.save(categoryBo);
}
/**
* 菜品分类分页查询
*
* @param pageSize
* @param pageNum
* @return
*/
@GetMapping("/page")
@ApiImplicitParams({
@ApiImplicitParam(name = "pageSize",value = "每条记录数",required = true),
@ApiImplicitParam(name = "pageNum",value = "页码",required = true)
})
public R<Page> page(@RequestParam("pageSize") int pageSize, @RequestParam("pageNum") int pageNum) {
return categoryService.page(pageSize, pageNum);
}
/**
* 删除菜品
*
* @param id
* @return
*/
@DeleteMapping("/delete/{id}")
public R<String> delete(@PathVariable("id") Long id) {
return categoryService.delete(id);
}
/**
* 菜品更新
*
* @param categoryBo
* @return
*/
@PutMapping("/update")
public R<String> update(@RequestBody CategoryBo categoryBo) {
return categoryService.update(categoryBo);
}
/**
*
* @param category
* @return
*/
@GetMapping("/list")
public R<List<Category>> listCategory(Category category) {
return categoryService.listCategory(category);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/105074.html