使用springboot开发一个json接口

49 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

springboot:由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的创建、运行、调试、部署等,说白了就是一个web框架,为了简化配置.

SpringBoot开发项⽬目常⻅见的交互使⽤用形式

  • 后端接⼝直接返回⻚面,现在很少这样用了
  • 返回JSON数据,主流场景,互联⽹网公司⽤的比较多,⽐如微服务接口,前后端分离项目,手机app等,基本都是通过JSON交互

实现一个json格式接口的返回

首先创建一个统一的返回格式工具类.这里取名为ResponseData
public class ResponseData {
    private int code;
    private Object data;
    private String msg;

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public ResponseData(){}

    public ResponseData(int code, Object data){
        this.code = code;
        this.data = data;

    }
    public ResponseData(int code, Object data, String msg){
        this.code = code;
        this.data =data;
        this.msg = msg;

    }
    public static ResponseData buildSuccess(Object data){
        return new ResponseData(0,data);
    }

    public static ResponseData buildSuccess(Object data, String msg){
        return new ResponseData(0,data,msg);
    }

    public static ResponseData buildError(String msg){
        return new ResponseData(-1,"",msg);
    }

    public static ResponseData buildError(String msg, int code){
        return new ResponseData(code,"",msg);
    }

    @Override
    public String toString() {
        return "JsonData{" +
                "code=" + code +
                ", data=" + data +
                ", msg='" + msg + '\'' +
                '}';
    }
}
创建一个TestController,在该类上加上@restcontroller注解
@RestController
@RequestMapping("/data/api")
public class TestController {

  @RequestMapping("/test")
  public ResponseData test() {
    Map map = new HashMap() {{
      put("name","lelontar");
      put("age","18");
      put("gender","male");
    }};
    return ResponseData.buildSuccess(map,"查询成功!");
  }
}
查询结果如下
{"code":0,"data":{"gender":"male","name":"lelontar","age":"18"},"msg":"查询成功!"}