课程管理-删除课程删除视频(接口) | 学习笔记

本文涉及的产品
视频点播 VOD,流量+存储+转码
简介: 简介:快速学习课程管理-删除课程删除视频(接口)

开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot):课程管理-删除课程删除视频(接口)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/667/detail/11418


课程管理-删除课程删除视频(接口)

 

删除课程删除视频

我们在删除视频的时候有一个特点,删除课程就要把它的章节,小节,描述都删除,所以我们现在添加视频,一个课程中有很多小节,每个小节中又有视频,所以这里的特点就是,我们在删除课程的时候,视频有多个,至少应该是一个,所以我们的效果就是删除课程删除视频,这个我们需要明确。那我们要怎么做呢?

讲解如下:

直接找到删除代码,来到 vod 中,打开 vod ,直接看代码,在代码中我们可以看到我们在上午在 vod 中写过的删除代码,

@DeleteMapping("removeAlyVideo/ {id}")

public R removeAlyVideo(@PathVariable String id){

try{

//初始化对象

DefaultAcsClient client = InitVodCilent. initVodClient(ConstantVodUtils. ACCESS KEY ID

//创建删除视频request对象

DeleteVideoRequest request =new DeleteVideoRequest(:

//向request设置视频id

request.setVideoIds(id);

//调用初始化对象的方法实现删除

client.getAcsResponse(request);

return R. ok();

} catch(Exception e){

e.printStackTrace()

但这个方法做的是跟据你的视频 id 删除你的视频,是删除某一个视频,而我们现在是删除多个视频,所以有多种方式来解决这个问题。第一种方法就是接口可以新写一种接口,可以做一个循环,循环掉这个循环的方法,这样我们就可以做到删除多个视频。

假如我现在有三个视频,那我循环三次,每次都调用这种方法,我那么多个视频是可以删除的,这样做是可以的,但是我们为了更区分一下,让大家有一个更深入的印象,因此重新写了一个方法,专门做一个删除多个视频的方法,注意我写的目的,在实际的开发中,如果不写,使用这个方法循环删除,是没有问题的,再写一个方法进行删除多个视频也是可以的,使用哪种取决于自己,只是我提供更多的一种方式。

1、 在 service-vod 创建接口,删除多个视频

在 vod 中的 control 中写一个方法。

//删除多个阿里云视频的方法

//参数是多个视频 id,

@DeleteMapping("delete-batch")

public R deleteBatch(@RequestParam (“videoidlist”)list videoidlist){

在课件中找到并填写删除多个视频的方法;

return R. ok():

因为我们现在要删除多个视频,如果删除一个视频,只需要传入一个视频 id;要删除多个视频就要传入多个 id,在 setVideoids(id);中就可以传入多个视频 id,之间用逗号隔开,所以我们现在就需要传入多个视频id。

有一种最简单的一种方式,这些String中只能传入一个值,所以我们加个string数组就可以添加多个值,但一般情况下更建议用 list 来传入,在这个集合中能放入多个数据,所以我们现在使用 list 来传递多个值,所以代码中填写上 list videoidlist,就是我们的参数,但是我们为了更明显,我们可以加上一个注解,(@RequestParam,并加上参数名称,所以我们就参数传过来了。

删除的写法和以下写法应该是一样的,

try

//初始化对象

DefaultAcsClient client = InitVodCilent. initVodClient(ConstantVodUtils. ACCESS KEY ID.

//创建删除视频request对象

DeleteVideoRequest request =new DeleteVideoRequest();

//video list值转换成1,2,3,

//向request设置视频id

//1,2,3

id request.setVideoIds(id);

//调用初始化对象的方法实现删除

client.getAcsResponse(request):

return R.ok();

}catch(Exception e) {

e.printStackTrace();

throw new GuliException(20001,"删除视频失败”):

没有区别,所以我们为了更加明显,将以上代码写入 service 中,专门写他的方法,

//删除多个阿里云视频的方法

//参数多个视频 id List videoIdlist

@DeleteMapping("delete-batch")

public R deleteBatch(@RequestParam("videoIdList") List videoIdList) {

vodService. removeMoreAlyVideo(videoIdList);

return R.ok();

写完之后,我们开始写 service,先创建删除多个视频,之后写 service 对应的实现类,在实现类中实现方法,按照我们最开始的方法,直接复制粘贴

我们可以看到,第一步应该初始化对象,第二步创建删除视频 request 对象,第三步向里面 id request.setVideoIds(id);

设置 id 值,第四步实现调用结果,最后判断说出删除视频失败,

区别就是刚才里面就开始传 id,而我们现在的参数是一个 list 集合,该如何做到,如果说我们一个视频就传一个 id,那多个视频就要传多个 id,所以他们之间需要用逗号隔开,这样的话他们就可以传进来了,如果纸船入个 list 集合,他肯定不认识,它只识别传入的字符串,当多个视频id用逗号隔开,这才是我们的做法,就是将 video list 值转换成1,2,3,

//video list 值转换成1,2,3,

它里面放了多个视频 id,如1,2,3等,所以我们现在第一个做法就是将这个集合做个便利,得到每个值,然后将每个值用逗号做个拼接,传入就可以了,这种方法是没有问题的,但我们还有更简单的方法。

我们可以使用 stringutils,里面有一种 join 的方法,他有加入的意思,而他在这里就表示把我们的数据按照一定的符号进行分割,将我们的 list 集合按照逗号进行分割,这就是 join 方法,所以接下来我们就让 join 发挥功能,为了更加明显,先写一个测试方法,给方法进行测试,测试成功之后再改到这里,

public static void main(String[] args) {

List list =new ArrayList<>();

list.add("11");

list.add("22");

list.add("33");

// 11,22,33

StringUtils . join(list.toArray(),separator:",")

System. out. println(join)

这里要使用 commons.lang.StringUtils. 中的方法,这和我们之前做的是有区别的,传入参数,使用list参数,加上逗号,所以分隔开来,最后还有一个返回值,就是 string,将返回值输出,System. out. println(join)。

注意的是,这里的 stringutils 不是我们之前使用过的,而是一个工具类,而是commons.lang.StringUtils.,,是用这个方法做到的,

这里的 StringUtils 并不是我们之前使用的包中 spring ,而我们使用的是commons.lang.StringUtils.,

包中的 StringUtils,是 apache.commons.lang.StringUtils.,要注意我们使用的是它。

测试完成之后,我们来看一下结果,我们想要的结果就是多个值之间用逗号隔开,启动看结果,直接执行,我们可以看到值都是被逗号隔开的,这就是我们想要的结果,这样我们就完成了。

我们将它完善

//videoIdlist 值转换成1,2,3

String videoIds = StringUtils. join(videoIdList.toArray(), separator: ",");返回之后,ids 直接传入到我们的 request 中,最后他就可以删除多个视频,所以这个代码我们就完成了。

我们先用 list 传递我们的多个视频,然后再 service 中写到删除方法,将list中的值变成多个逗号隔开的效果,调用方法实现删除的功能,

我们主要关于接口的代码就完成了,记住 join 方法。

然后我们在 edu 中做过调用,要实现删除课程删除视频,接口完成,进行调用,

2、在service-edu 调用 service-vod 接口实观剧除多个视频的功能

新建一个 interface ,里面输入名字和方法,调用就能实现。

@FeignClient("service-vod”) //调用的服务名称

@Component

public interface VodClient {

//定义调用的方法路径

//根据视频id删除阿里云视频

//@PathVariable注解一定要指定参数名称,否则出错

@DeleteMapping("/eduvod/video/removeAlyVideo/ {id}")

public R removeAlyVideo(@PathVariable("id") String id):

相关文章
|
存储
TienChin-课程管理-课程更新接口
TienChin-课程管理-课程更新接口
50 0
TienChin-课程管理-删除课程
TienChin-课程管理-删除课程
50 0
|
数据建模 Java 开发工具
课程管理-删除视频接口 | 学习笔记
简介:快速学习课程管理-删除视频接口
135 0
课程管理-删除视频接口 | 学习笔记
|
前端开发 数据库 开发者
课程管理-添加和删除小节 | 学习笔记
简介:快速学习课程管理-添加和删除小节
144 0
课程管理-添加和删除小节 | 学习笔记
|
前端开发 API 数据库
课程管理-删除视频前端 | 学习笔记
简介:快速学习课程管理-删除视频前端
131 0
课程管理-删除视频前端 | 学习笔记
|
前端开发 Java Nacos
课程管理-删除课程删除视频(最终测试) | 学习笔记
简介:快速学习课程管理-删除课程删除视频(最终测试)
115 0
课程管理-删除课程删除视频(最终测试) | 学习笔记
|
开发者 微服务
课程管理-删除课程(后端) | 学习笔记
简介:快速学习课程管理-删除课程(后端)
213 0
课程管理-删除课程(后端) | 学习笔记
|
存储 前端开发 JavaScript
课程管理-修改课程信息(前端) | 学习笔记
简介:快速学习课程管理-修改课程信息(前端)
课程管理-修改课程信息(前端) | 学习笔记
|
存储 前端开发 JavaScript
课程管理-修改课程信息(最终实现) | 学习笔记
简介:快速学习课程管理-修改课程信息(最终实现)
208 0
课程管理-修改课程信息(最终实现) | 学习笔记
|
前端开发 数据库 开发者
课程管理-修改课程信息(后端) | 学习笔记
简介:快速学习课程管理-修改课程信息(后端)
134 0
课程管理-修改课程信息(后端) | 学习笔记