knife4j-openapi3 使用笔记

本文介绍了如何在Knife4j官方文档中使用@Tag,@Operation和实体类UserEntity进行RESTfulAPI的开发,包括控制器方法的标注和参数说明。
摘要由CSDN通过智能技术生成

knife4j官方文档:https://doc.xiaominfo.com/docs/quick-start/start-knife4j-version
增强模式文档:https://doc.xiaominfo.com/docs/features/enhance

访问Knife4j的文档地址:http://ip:port/doc.html

1.用法

(1)控制层 @Tag(name = “用户信息管理”)

@Tag(name = "用户信息管理")
@RestController
@RequestMapping("/test/user")
public class TestController {
}

(2)方法 @Operation(summary = “获取用户列表”),@Parameter(name = “userId”)

@Operation(summary = "获取用户列表")
@GetMapping("/list")
public R<List<UserEntity>> userList() {
    List<UserEntity> userList = new ArrayList<UserEntity>(users.values());
    return R.ok(userList);
}

@Operation(summary = "获取用户详细")
@Parameter(name = "userId", description = "用户ID", required = true)
@GetMapping("/{userId}")
public R<UserEntity> getUser(@PathVariable Integer userId) {
    if (!users.isEmpty() && users.containsKey(userId)) {
        return R.ok(users.get(userId));
    } else {
        return R.fail("用户不存在");
    }
}

(3)实体

@Tag(name = "UserEntity", description = "用户实体")
class UserEntity {
    @Schema(title = "用户id")
    private Integer userId;
}

2.@Schema注解属性说明

name:属性字段,注:该属性可以不写

title:标题

description:标题的描述

title和description一起使用

@Schema(name = "userId",title = "用户id",description = "长整型")
    private Integer userId;

在这里插入图片描述

3.token设置

在这里插入图片描述

4.使用实体类来接收get请求对象,对象显示在同一个参数里面的问题

方式一:

在这里插入图片描述
解决办法: 方法里面增加 @ParameterObject 注解

@Operation(summary = "列表")
@GetMapping("/list")
public TableDataInfo<List<Product>> list(@ParameterObject Product product) {
    startPage();
    List<Product> list = productService.getList(product);
    return getDataTable(list);
}

方式二: 推荐使用

https://doc.xiaominfo.com/docs/faq/v4/knife4j-parameterobject-flat-param
在这里插入图片描述

5.PostMapping PutMapping 接收参数,跟之前一样,加注解@RequestBody

@RepeatSubmit
@PostMapping("/add")
@ApiOperation("新增收获地址")
public AjaxResult add(@RequestBody TAddress tAddress) {
    return tAddressService.addAddress(tAddress);
}

@RepeatSubmit
@PutMapping("/edit")
@ApiOperation("修改收获地址")
public AjaxResult edit(@RequestBody TAddress tAddress) {
    return tAddressService.editAddress(tAddress);
}
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值