SpringBootRestful接口实现

博客 动态
0 210
羽尘
羽尘 2022-06-03 15:00:04
悬赏:0 积分 收藏

SpringBoot Restful 接口实现

目录
  • SpringBoot 核心注解
  • SpringBoot Restful 接口实现
  • 封装响应数据


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"}}
posted @ 2022-06-03 14:45 Juno3550 阅读(0) 评论(0) 编辑 收藏 举报
回帖
    羽尘

    羽尘 (王者 段位)

    2335 积分 (2)粉丝 (11)源码

     

    温馨提示

    亦奇源码

    最新会员