当前位置 : 主页 > 编程语言 > 其它开发 >

SpringBoot Restful 接口实现

来源:互联网 收集:自由互联 发布时间:2022-06-04
目录 SpringBoot 核心注解 SpringBoot Restful 接口实现 封装响应数据 SpringBoot 核心注解 SpringBoot 基础入门 注解 说明 Component声明为 SpringBoot 的 beanRepository用于 dao 层的 beanAutowired用于向一个 b

目录
  • 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 接口实现 注解 说明 SpringBootApplication SpringBoot 主类,用来加载 SpringBoot 各种特性 RestController SpringBoot 会转换返回值并自动将其写入 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"}}
网友评论