使用apifox中post方式怎么写List<Long> listArcInfoId,Integer tableName,Integer type的值
时间: 2023-07-16 17:15:13 浏览: 181
在apifox中使用post方式传递List<Long>类型的参数需要使用json格式进行传递,具体的步骤如下:
1. 在请求参数中选择“Body”,并选择“JSON”。
2. 在请求体中填写json格式的数据,例如:
```
{
"listArcInfoId": [1,2,3],
"tableName": 1,
"type": 2
}
```
其中,`listArcInfoId`是一个`List<Long>`类型的参数,可以用数组的形式进行表示。
3. 发送请求即可。
需要注意的是,使用json格式传递参数时,需要确保参数名称与后端接口约定的一致。
相关问题
@PostMapping ("/arcInfoStatus") @ApiOperation(value = "加入回收type:1 删除回收type:2 待归档type:3 归档type:4 还原:5 ") public R updateArcInfoStatus(@RequestBody List<Long> listArcInfoId, @RequestParam Integer tableName,@RequestParam Integer type) {怎么传数据能让后台接受到
你可以通过发送HTTP请求来传递数据给后台,具体操作如下:
1. 使用POST方法发送HTTP请求,请求的URL为接口地址:/arcInfoStatus
2. 在请求头中设置Content-Type为application/json,表示请求体中的数据是JSON格式的。
3. 在请求体中以JSON格式传递数据,示例如下:
```
{
"listArcInfoId": [1, 2, 3],
"tableName": 1,
"type": 4
}
```
其中,listArcInfoId表示需要操作的回收信息ID列表,tableName表示需要操作的表名,type表示操作类型。
4. 发送请求,等待后台响应。
现有如下要求,模拟博客系统中展示本周热议文章;现实体类、数据层、控制层都已书写完毕,需将业务补全。 文章Post实体如下: @Data @Accessors(chain = true) @TableName("m_post") public class Post implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO) private Long id; private Date created; private Date modified; /** * 标题 */ @NotBlank(message = "标题不能为空") private String title; /** * 内容 */ @NotBlank(message = "内容不能为空") private String content; @NotNull(message = "分类不能为空") private Long categoryId; /** * 评论数量 */ private Integer commentCount; //其他省略 } PostMapper 数据层接口如下,注意,使用的是mybatis-plus: @Component public interface PostMapper extends BaseMapper<Post> { } 现需将业务操作补全: @Service public class PostServiceImpl extends ServiceImpl<PostMapper, Post> implements PostService { @Autowired private RedisTemplate redisTemplate; /** * 本周热议初始化 */ @Override public void initWeekRank() { // 数据库查询获取最近7天发表的文章 // 初始化文章的总评论量,按照评论数量倒序将文章信息缓存到redis中, // 其中key值为文章id,value为文章对象,并设置7天后自动过期,注意有效时间的//计算 } }
实现本周热议文章的业务,可以按照以下步骤进行:
1. 获取最近7天发表的文章,可以使用PostMapper中的方法进行查询,例如:
```java
List<Post> posts = baseMapper.selectList(new QueryWrapper<Post>()
.ge("created", LocalDate.now().minusDays(7))
.orderByDesc("comment_count"));
```
上述代码使用了mybatis-plus提供的QueryWrapper类来构建查询条件,查询条件为created字段大于等于7天前的日期,并按照comment_count字段倒序排序,即评论数多的文章排在前面。
2. 初始化文章的总评论量,可以直接更新数据库中的comment_count字段,例如:
```java
posts.forEach(post -> {
int commentCount = commentService.count(new QueryWrapper<Comment>()
.eq("post_id", post.getId()));
post.setCommentCount(commentCount);
baseMapper.updateById(post);
});
```
上述代码使用了mybatis-plus提供的updateById方法更新数据库中的记录,并且在更新时计算了文章的评论数量并赋值给commentCount字段。
3. 将文章信息缓存到redis中,可以使用redisTemplate的opsForValue方法进行操作,例如:
```java
long expireTime = 7 * 24 * 60 * 60; // 7天的秒数
posts.forEach(post -> {
String key = "week:rank:" + post.getId();
redisTemplate.opsForValue().set(key, post, expireTime, TimeUnit.SECONDS);
});
```
上述代码将文章对象存储到redis中,并且设置了7天后自动过期,过期时间的计算使用了TimeUnit提供的SECONDS常量。
完整的PostServiceImpl代码如下:
```java
@Service
public class PostServiceImpl extends ServiceImpl<PostMapper, Post> implements PostService {
@Autowired
private RedisTemplate redisTemplate;
@Autowired
private CommentService commentService;
/**
* 本周热议初始化
*/
@Override
public void initWeekRank() {
// 数据库查询获取最近7天发表的文章
List<Post> posts = baseMapper.selectList(new QueryWrapper<Post>()
.ge("created", LocalDate.now().minusDays(7))
.orderByDesc("comment_count"));
// 初始化文章的总评论量
posts.forEach(post -> {
int commentCount = commentService.count(new QueryWrapper<Comment>()
.eq("post_id", post.getId()));
post.setCommentCount(commentCount);
baseMapper.updateById(post);
});
// 按照评论数量倒序将文章信息缓存到redis中
long expireTime = 7 * 24 * 60 * 60; // 7天的秒数
posts.forEach(post -> {
String key = "week:rank:" + post.getId();
redisTemplate.opsForValue().set(key, post, expireTime, TimeUnit.SECONDS);
});
}
}
```
上述代码中,注入了CommentService来计算文章的评论数量,具体实现可以根据实际情况进行编写。另外,需要注意缓存的key值命名规则,这里使用了"week:rank:"作为前缀。
阅读全文