SpringBoot Restful 接口实现

本文介绍了如何使用SpringBoot创建Restful接口,详细讲解了核心注解的使用,并通过代码示例展示了如何封装响应数据,提供了一个完整的接口调用结果。
摘要由CSDN通过智能技术生成

🚀 优质资源分享 🚀

学习路线指引(点击解锁)知识定位人群定位
🧡 Python实战微信订餐小程序 🧡进阶级本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
💛Python量化交易实战💛入门级手把手带你打造一个易扩展、更安全、效率更高的量化交易系统

目录* SpringBoot 核心注解

SpringBoot 核心注解

SpringBoot 基础入门

注解说明
Component声明为 SpringBoot 的 bean
Repository用于 dao 层的 bean
Autowired用于向一个 bean 中注入其他 bean
Service用于 service 层的 bean
Configuration用于声明 SpringBoot 的配置文件类
Value(“${key)”)获取 SpringBoot 配置文件中的值
Bean声明其为 bean 实例,常和 Configuration 配合使用

SpringBoot Restful 接口实现

注解说明
SpringBootApplicationSpringBoot 主类,用来加载 SpringBoot 各种特性
RestControllerSpringBoot 会转换返回值并自动将其写入 HTTP 响应
RequestMapping用于类和方法,在方法级别时,用于处理 HTTP 的各种方法
RequestBody将请求 Body 中的 json/xml 对象解析成该参数类型的 JavaBean 对象
PathVariable处理动态 URI,即 URI 的值可以作为控制器中处理方法的入参
Post/Put/Get/DeleteMapping在方法的级别上使用,在方法级别时,用于处理 HTTP 的各种方法
RequestParam处理 get 请求的参数

代码示例:

package com.example.apitestplatform.controller;

import com.example.apitestplatform.entity.User;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping(value="demo")  // 类中所有接口地址的前缀
public class DemoController {

    // @RequestMapping(value="loginGet", method= RequestMethod.GET)
    @GetMapping("loginGet")
    public String loginGet() {
        return "登录成功";
    }

    // @RequestMapping(value="loginPost", method= RequestMethod.POST)
    @PostMapping("loginPost")  // 简便写法
    public String loginPost(@RequestBody User user) {  // 如果没用 @RequestBody,则获取结果为 null
        System.out.println("username : "+user.getUsername());
        System.out.println("password : "+user.getPassword());
        return "登录成功:"+user.getUsername();
    }

    // 访问:http://localhost:8080/demo/userId/1/2
    // @RequestMapping(value="userId/{userId}/{id}", method=RequestMethod.GET)
    @GetMapping("getUser/{userid}/{id}")
    public String loginUser1(@PathVariable("userid") Integer userid, @PathVariable("id") Integer id) {
        System.out.println("userid : "+userid);
        System.out.println("id : "+id);
        return "userid: "+userid+" id: "+id;
    }

    // 访问:http://localhost:8080/demo/getUser?userid=1&id=2
    // 访问:http://localhost:8080/demo/getUser?user=1&id=2,则 userid 值为 null
    @GetMapping("getUser")
    public String loginUser2(@RequestParam(value="userid", required=false) Integer userid, // required=false:参数非必须传
 @RequestParam("id") Integer id) {
        System.out.println("userid : "+userid);
        System.out.println("id : "+id);
        return "userid: "+userid+" id: "+id;
    }
}

封装响应数据

响应对象类:

package com.example.apitestplatform.common;

import lombok.Builder;
import lombok.Data;

@Data
@Builder  // 作用:调用时使用链式写法
public class ResultResponse {

    private String code;
    private String message;
    private Object data;

}

接口类:

    @GetMapping("loginSuccess")
    public ResponseEntity loginSuccess() {
        User user = new User();
        user.setUsername("xiaoming");
        user.setPassword("admin123");
        ResultResponse resultResponse = ResultResponse.builder().code("00").message("登录成功").data(user).build();
        return ResponseEntity.status(HttpStatus.OK).body(resultResponse);
    }

    @GetMapping("loginFail")
    public ResponseEntity loginFail() {
        User user = new User();
        user.setUsername("xiaoming");
        user.setPassword("admin123");
        ResultResponse resultResponse = ResultResponse.builder().code("02").message("登录失败").data(user).build();
        return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(resultResponse);
    }

请求结果:

{"code":"00","message":"登录成功","data":{"username":"xiaoming","password":"admin123"}}

{"code":"00","message":"登录失败","data":{"username":"xiaoming","password":"admin123"}}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值