一、准備
postman:一個接口測試工具
創建一個新工程
選擇web
不會的請看Spring Boot快速入門(一):Hello Spring Boot
二、開始
新建java類RequestCtrl
1.添加一個all方法,使用@RequestMapping注解,可以處理所有的http請求
@RestController//這是一個控制器並只返回數據不尋找視圖 public class RequestCtrl { @RequestMapping("/")//將本方法映射到/ public String all(String name, Integer age)//接受2個參數,name和age { return "這里是all\n" + "name: " + name + "\n" + "age: " + age; } }
requestMapping的作用可以簡單理解為給方法加個地址,讓別人能訪問
通過源碼可以看出@RestController是@Controller和ResponseBody的結合注解
@Controller 表明這是一個控制器,將會返回數據或者頁面
@ResponseBody 表明只會返回數據,Spring Boot默認將數據使用jaskson序列化為json返回
JSON(JavaScript Object Notation, JS 對象標記) 是一種輕量級的數據交換格式,常見表現形式為鍵值對{key:value},例如{name:"lierabbit",age:20},字符串和數字直接返回
啟動程序,打開postman
對http://localhost:8080發起get請求
發起帶參數的請求
使用post請求
2.添加一個get方法,使用@GetMapping注解,只可以處理get類型的http請求
@GetMapping("/get")//將本方法映射到/get,且只能用get方式訪問 public String get(String name, int age)//接受2個參數,name和age { return "這里是get\n" + "name: " + name + "\n" + "age: " + age; }
重啟程序
使用get方式訪問http://localhost:8080/get?name=lierabbit&age=20
嘗試使用post訪問,將得到405異常
3.添加一個post方法,使用@PostMapping注解,只可以處理post類型的http請求
@PostMapping("/post")//將本方法映射到/post,且只能用post方式訪問 public String post(String name, int age)//接受2個參數,name和age { return "這里是post\n" + "name: " + name + "\n" + "age: " + age; }
重啟程序
使用post方式訪問
嘗試使用get訪問,得到405異常
4.添加一個put方法,使用@PutMapping注解,只可以處理put類型的http請求
@PutMapping("/put")//將本方法映射到/put,且只能用put方式訪問 public User put(@RequestBody User user)//接受一個user實體 { user.setName("名字已經被修改:" + user.getName()); user.setAge(user.getAge() + 1); return user; }
@RequestBody 表示接受一個user實體(user json)
返回User,會被spring boot自動序列化為json
5.添加一個delete方法,使用@DeleteMapping注解,只可以處理delete類型的http請求
@DeleteMapping("/delete")//將本方法映射到/delete,且只能用delete方式訪問 public User delete(@RequestBody User user)//接受一個user實體 { user.setName("這個用戶將會被刪除:" + user.getName()); user.setAge(user.getAge() + 1); return user; }
6.添加一個patch方法,使用@PatchMapping注解,只可以處理patch類型的http請求
@PatchMapping("/patch")//將本方法映射到/patch,且只能用patch方式訪問 public User pathch(@RequestBody User user)//接受一個user實體 { user.setName("只改名稱:" + user.getName()); return user; }
源碼地址:https://github.com/LieRabbit/SpringBoot-request
原文地址:https://lierabbit.cn/2018/01/14/SpringBoot%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A82-Http%E8%AF%B7%E6%B1%82/