实现接口功能如下:

  1. /hello 支持get、post请求返回字符串
  2. /test get请求,解析请求参数并封装返回值
  3. /test post请求,解析请求参数并封装返回值
  4. /testPostJson post请求,解析请求中的body为json的参数并封装返回值
  5. /testReturnJson post请求,解析请求中的body为json的参数并封装返回JSON数据格式字符串

 

基础入门教程或相关教程请移至文末

 

 

项目文件结构

 

 

接口层面编码练习

HelloController.java
package com.benjamin.springboot.test;


import com.alibaba.fastjson.JSONObject;
import org.springframework.web.bind.annotation.*;

@RestController
public class HelloController {


    // url请求,支持GET和POST,返回值固定
    @RequestMapping("/hello")
    public String hello() {
        return "Hello Spring Boot!";
    }


    /**
     * GET请求 http://127.0.0.1:8080/test?param1=222
     * @param param1
     * @param param2
     * @return get in handle1 param1 is 222, param2 is null
     */
    @GetMapping("/test")
    public String test(String param1, String param2) {
        String result = String.format("get in handle1 param1 is %s, param2 is %s", param1, param2);
        return result;
    }


    /**
     * POST请求 http://127.0.0.1:8080/test?param1=222&param2=111
     * @param demo
     * @return post in handle1 param1 is 222, param2 is 111
     */
    @PostMapping("/test")
    public String test(ParamDemo demo){
        String result = String.format("post in handle2 param1 is %s, param2 is %s", demo.param1, demo.param2);
        return result;
    }


    /**
     * 请求入参是一个实体,并且加上了 @RequestBody
     * 一般适用于前端Header中Content-Type 为 application/json的场景
     * 注意入参要是json格式
     * @param demo
     * @return
     */
    @PostMapping("/testPostJson")
    public String testJson(@RequestBody ParamDemo demo){
        String result = String.format("in handle2 param1 is %s, param2 is %s", demo.param1, demo.param2);
        return result;
    }


    /**
     * GET 请求http://127.0.0.1:8080/testGetJson
     * @return {
     * errorMeg: "成功",
     * errorCode: 0
     * }
     */
    @GetMapping("/testGetJson")
    public Map<String,Object> testGetJson(){
        Map<String,Object> result = new HashMap<String,Object>();
        result.put("errorCode",0);
        result.put("errorMeg","成功");
        return result;

    }



    /**
     * 请求入参是一个实体,并且加上了 @RequestBody
     * 一般适用于前端Header中Content-Type 为 application/json的场景
     * 注意入参要是json格式
     * @param demo
     * @return json
     */
    @PostMapping("/testReturnJson")
    public String testReturnJson(@RequestBody ParamDemo demo){
        // 将获取的json数据封装一层,然后在给返回
        JSONObject result = new JSONObject();
        result.put("msg", "ok");
        result.put("method", "POST");
        result.put("data", demo);
        return result.toJSONString();
    }


    /**
     * 使用静态内部类,简单定义一个入参实体类
     */
    static class ParamDemo{
        private String param1;
        private String param2;

        public String getParam1() {
            return param1;
        }

        public void setParam1(String param1) {
            this.param1 = param1;
        }

        public String getParam2() {
            return param2;
        }

        public void setParam2(String param2) {
            this.param2 = param2;
        }
    }

}

 

接口调试运行截图

> 普通GET请求测试验证,POST请求返回值一样

/hello

> GET请求带参数测试验证

/test?param1=22

> GET请求返回JSON的数据格式

/testGetJson

 

 

 

> POST请求带Body为JSON的数据格式请求

/testPostJson

Requests Header
Content-Type:application/json

Requests Body
{
    "param1":"111",
    "param2":"222"
}

 

> POST请求,返回JSON数据格式并包含请求是的BODY请求数据

/testReturnJson

Requests Header
Content-Type:application/json

Requests Body
{
    "param1":"111",
    "param2":"222"
}

 

SpringBoot 错误请求404测试 Error Request

 

 

 

参考教程请移至:

    Spring Boot -01- 快速入门篇(图文教程) https://icode.blog.csdn.net/article/details/84194493

    SpringBoot|Controller接收处理GET,POST请求入参 https://blog.csdn.net/weixiaodedao/article/details/106710432

 

 

 

 

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐