HTTP学习笔记3
HTTP路径参数的传递和响应(非统一响应和Result统一响应)
Http请求中 路径参数的传递
//路径参数
@RequestMapping(“/path/{id}”)
//通过请求URL直接传递参数,使用{。。},使用@PathVariable捆绑参数
public String pathParame(@PathVariable Integer id){
System.out.println(id);
return “OK”;
}
//多个路径参数
@RequestMapping("/path/{id}/{name}")
public String pathParame2(@PathVariable Integer id,@PathVariable String name){
System.out.println(id+":"+name);
return "OK";
}
文档的响应,新建ResponseController Javaclass类文件
1@ResponseBody
位置:Controller类上/方法上
作用:将方法返回值直接响应,若返回值类型是 实体对象/集合,转JSON格式响应
2统一响应结果
Result(code,msg,data)
code,0代表失败,1代表成功
msg ,提示信息
data , 返回的数据
package com.itheima.springbootreqrequest2;
import com.itheima.springbootreqrequest2.pojo.Adress;
//import com.itheima.springbootreqrequest2.pojo.Result;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
@ResponseBody
@RestController
public class ResponseController {
/*@RequestMapping(“/hello”)
public String hello(){
System.out.println(“hello world~”);
return “hello world”;
}
@RequestMapping(“/getAdr”)
public Adress getAdr(){
Adress addr = new Adress();
addr.setProvince(“北京”);
addr.setCity(“北京”);
return addr;
}
@RequestMapping("/listAddr")
public List<Adress> listAddr(){
List<Adress> list = new ArrayList<>();
Adress addr = new Adress();
addr.setProvince("广东");
addr.setCity("深圳");
Adress addr2 = new Adress();
addr2.setProvince("陕西");
addr2.setCity("西安");
list.add(addr);
list.add(addr2);
return list;*/
//统一返回数据格式Result
@RequestMapping(“/hello”)
public com.itheima.pojo.Result hello(){
System.out.println(“hello world~”);
return com.itheima.pojo.Result.success(“hello world~”);
}
@RequestMapping(“/getAdr”)
public com.itheima.pojo.Result getAdr(){
Adress addr = new Adress();
addr.setProvince(“北京”);
addr.setCity(“北京”);
return com.itheima.pojo.Result.success(addr);
}
@RequestMapping("/listAddr")
public com.itheima.pojo.Result listAddr(){
List<Adress> list = new ArrayList<>();
Adress addr = new Adress();
addr.setProvince("广东");
addr.setCity("深圳");
Adress addr2 = new Adress();
addr2.setProvince("陕西");
addr2.setCity("西安");
list.add(addr);
list.add(addr2);
return com.itheima.pojo.Result.success(list);
}
}
在pojo目录下新建Result javaclass 文件,与Adress,User同一目录
package com.itheima.pojo;
/**
-
统一响应结果封装类
*/
public class Result {
private Integer code ;//1 成功 , 0 失败
private String msg; //提示信息
private Object data; //数据 datapublic Result() {
}
public Result(Integer code, String msg, Object data) {
this.code = code;
this.msg = msg;
this.data = data;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}public static Result success(Object data){
return new Result(1, “success”, data);
}
public static Result success(){
return new Result(1, “success”, null);
}
public static Result error(String msg){
return new Result(0, msg, null);
}@Override
public String toString() {
return “Result{” +
“code=” + code +
“, msg='” + msg + ‘’’ +
“, data=” + data +
‘}’;
}
}
运行结果 postman中
get localhost:8080/listAddr
返回值
{
“code”: 1,
“msg”: “success”,
“data”: [
{
“province”: “广东”,
“city”: “深圳”
},
{
“province”: “陕西”,
“city”: “西安”
}
]
}