【SpringBoot教程】SpringBoot开发HTTP接口GET请求实战

专栏地址 系列教程更新中
🚀 专栏介绍: 本专栏为SpringBoot+Spring+Mybatis的系列零基础教程,从框架的基础知识讲起,从0开始实现一个在线教育实战项目
🚀 源码获取: 项目中的资料可以通过文章底部公众号联系我获取,或者+V 【yopa66】备注SSM
在这里插入图片描述

1.快速创建一个SpringBoot项目
2.整体框架目录

在这里插入图片描述

  • GET请求

    • 场景:一般的查询接口就是get请求
    • 注解:@GetMapping = @RequestMapping(method = RequestMethod.GET)
  • 一个顶两的注解

    @GetMapping = @RequestMapping(method = RequestMethod.GET)
    @PostMapping = @RequestMapping(method = RequestMethod.POST)
    @PutMapping = @RequestMapping(method = RequestMethod.PUT)
    @DeleteMapping = @RequestMapping(method = RequestMethod.DELETE)
    
SpringBoot中的常用注解详解
  • @Controller:声明该类是一个控制器类,用来处理HTTP请求。

  • @RequestMapping:用来映射请求的URL和HTTP请求方法,可以用在类级别和方法级别。

  • @GetMapping:用来映射HTTP GET请求。

  • @PostMapping:用来映射HTTP POST请求。

  • @PutMapping:用来映射HTTP PUT请求。

  • @DeleteMapping:用来映射HTTP DELETE请求。

  • @PathVariable:用来获取URL中的参数值。

  • @RequestParam:用来获取请求参数的值。

  • @RequestBody:用来获取请求体中的数据。

  • @RestController是一个组合注解,它相当于@Controller和@ResponseBody的结合体。
    @Controller用来声明该类是一个控制器类,用来处理HTTP请求。
    @ResponseBody用来将方法的返回值转换成指定的格式,并写入到HTTP响应中。
    @RestController相当于将@Controller和@ResponseBody组合起来使用,它的作用是声明该类是一个控制器类,并且方法的返回值会自动转换成JSON格式,并写入到HTTP响应中。在使用@RestController时,不需要再在每个方法上加@ResponseBody注解了。

全局数据JSON格式封装
@Data
@AllArgsConstructor
@NoArgsConstructor
public class JsonData {

    /**
     * 状态码 0 表示成功,1表示处理中,-1表示失败
     */

    private Integer code;
    /**
     * 数据
     */
    private Object data;
    /**
     * 描述
     */
    private String msg;


    /**
     * 成功,传入数据
     * @return
     */
    public static JsonData buildSuccess() {
        return new JsonData(0, null, null);
    }

    /**
     *  成功,传入数据
     * @param data
     * @return
     */
    public static JsonData buildSuccess(Object data) {
        return new JsonData(0, data, null);
    }

    /**
     * 失败,传入描述信息
     * @param msg
     * @return
     */
    public static JsonData buildError(String msg) {
        return new JsonData(-1, null, msg);
    }

开发视频列表查询接口
  • 最终效果 这里使用PostMan进行测试
    在这里插入图片描述

启动类:

@SpringBootApplication
public class DemoApplication {

	public static void main(String[] args) {
		//这个类要放在最外层才可以扫描子包的东西
		SpringApplication.run(DemoApplication.class, args);
	}

}

控制层: 主要

@RestController
@RequestMapping("/api/v1/video")
public class VideoController {

    @Autowired
    private VideoService videoService;

    @GetMapping("list")
    public Object list(String name) throws JsonProcessingException {
        //xx/?name=xxx  传递参数
        System.out.println(name);
        return JsonData.bulidSuccess(videoService.listVideo());
    }


mapper实现返回列表的方法,这里采用模拟,后面通过mybatis进行数据库交互 :

@Repository   //加这个注解,spring就会自动识别是一个组件,自动会帮我们new一个类,之后我们去VideoSetvice接口定义方法
public class VideoMapper {
    private static Map<Integer, Video> videoMap=new HashMap<>();
    static {
        //模拟的数据,后续采用数据库
        静态加载类,加载一次,已启动就用信息的了。
        videoMap.put(1,new Video(1,"java基础课程,jdk新特性"));
        videoMap.put(2,new Video(2,"spring boot"));
        videoMap.put(3,new Video(3,"java基础课程,spring clound"));
        videoMap.put(4,new Video(4,"java基础课程,面试专题"));
    }
    public List<Video> listVideo(){
        List<Video> list=new ArrayList<>();
        list.addAll(videoMap.values());
        return list;
    }
}

接口层:

public interface VideoService {
  //返回List列表
    List<Video> listVideo();

}

实现层:

@Service  //可以统一使用Component但是为了区分可以使用提供的多种注解
public class VideoServiceImpl implements VideoService {
//    private VideoMapper videoMapper=new VideoMapper();  使用spring就不用这么写,只需要加一个注解spring就会自动帮我们实例化
    @Autowired
    private VideoMapper videoMapper;
    @Override
    public List<Video> listVideo() {
        return videoMapper.listVideo();
    }
}

    @Autowired
    private VideoService videoService;

    @GetMapping("list")
    public Object list(){
        return videoService.listVideo();
    }

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OCDt4ndP-1679736412775)(picture/image-20221224173338895.png)]

  • @Autowired 使用了这个注解 那全局都要用这个 不要单独去new写法
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据小禅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值