前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【SpringBoot实战教程】SpringBoot开发HTTP接口GET请求实战

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

作者头像
大数据小禅
发布2023-03-26 10:03:35
8320
发布2023-03-26 10:03:35
举报
文章被收录于专栏:YO大数据YO大数据

1.快速创建一个SpringBoot项目

2.整体框架目录
在这里插入图片描述
在这里插入图片描述

GET请求

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

一个顶两的注解

代码语言:javascript
复制
@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格式封装
代码语言:javascript
复制
@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进行测试
在这里插入图片描述
在这里插入图片描述

启动类:

代码语言:javascript
复制
@SpringBootApplication
public class DemoApplication {

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

}

控制层: 主要

代码语言:javascript
复制
@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进行数据库交互 :

代码语言:javascript
复制
@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;
    }
}

接口层:

代码语言:javascript
复制
public interface VideoService {
  //返回List列表
    List<Video> listVideo();

}

实现层:

代码语言:javascript
复制
@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)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OCDt4ndP-1679736412775)(picture/image-20221224173338895.png)]
  • @Autowired 使用了这个注解 那全局都要用这个 不要单独去new写法
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-03-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2.整体框架目录
  • SpringBoot中的常用注解详解
  • 全局数据JSON格式封装
  • 开发视频列表查询接口
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档