- helloworld簡(jiǎn)單實(shí)例
- 帶參數(shù)的Get請(qǐng)求
- 帶參數(shù)的Post請(qǐng)求
helloworld簡(jiǎn)單實(shí)例
首先我們先創(chuàng)建一個(gè)sprngboot項(xiàng)目妒潭,新增一個(gè)TestController,然后我們先寫(xiě)上一個(gè)最基本的get請(qǐng)求位仁,返回json格式。
import com.alibaba.fastjson.JSONObject;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
@GetMapping("/test")
public Object test(){
JSONObject jsonObj = new JSONObject();
jsonObj.put("status",200);
jsonObj.put("data",null);
jsonObj.put("message","successful");
return jsonObj;
}
}
我們簡(jiǎn)單描述下這個(gè)@RestController是什么计贰。
他其實(shí)就是@Controller + @ResponseBody 兩個(gè)注解的合體。
你如果是前后端分離的項(xiàng)目蒂窒,你就只需要在類上寫(xiě)一個(gè)@RestController就可以
相反有一些項(xiàng)目是需要我們返回模板引擎的躁倒,那么我們就必須寫(xiě)@Controller荞怒,這樣返回的時(shí)候就能正常返回界面了。
然而當(dāng)我們需要返回JSON時(shí)候秧秉,每一個(gè)方法前在加一個(gè)@ResponseBody就可以褐桌。如下!
@Controller
public class TestController {
@ResponseBody
@GetMapping("/test")
public Object test(){
JSONObject jsonObj = new JSONObject();
jsonObj.put("status",200);
jsonObj.put("data",null);
jsonObj.put("message","successful");
return jsonObj;
}
這樣象迎,我們也可以在一個(gè)@Controller 之下返回一個(gè)json格式的請(qǐng)求荧嵌。
然后我們用postman發(fā)起一個(gè)get請(qǐng)求看看是否正常,我們看看postman給我們返回的結(jié)果,沒(méi)問(wèn)題砾淌,發(fā)起下一波進(jìn)攻啦撮。
{
"data": null,
"message": "successful",
"status": 200
}
帶參數(shù)的Get請(qǐng)求
老規(guī)矩先貼代碼。
@GetMapping("/getRequest")
public Object getRequest(@RequestParam("username") String username,
@RequestParam("password") String password){
JSONObject jsonObj = new JSONObject();
jsonObj.put("name",username);
jsonObj.put("password",password);
return jsonObj;
}
然后發(fā)起帶參數(shù)的get請(qǐng)求
localhost:8080/getRequest?username=desc&password=123456
看看結(jié)果
{
"password": "123456",
"name": "desc"
}
好汪厨,當(dāng)我們接收一個(gè)get請(qǐng)求發(fā)過(guò)來(lái)的參數(shù)時(shí)我們只需要用到這個(gè)@RequestParam注解 他的第一個(gè)參數(shù)就是我們前端參數(shù)的key 這里我們對(duì)應(yīng)的是username赃春,而后面的String username 這個(gè)是我們可以指定傳遞過(guò)來(lái)后他的類型是什么,叫什么劫乱,我們也可以直接重命名為name织中,不妨你可以試試!V愿辍狭吼!。
帶參數(shù)的Post請(qǐng)求
@PostMapping("/postRequest")
public Object postRequest(User user){
JSONObject jsonObj = new JSONObject();
jsonObj.put("name",user.getUsername());
jsonObj.put("password",user.getPassword());
return jsonObj;
}
@Data
@TableName("user")
public class User {
@TableId(type = IdType.AUTO)
private Long id;
private String username;
private String password;
}
我們post請(qǐng)求比較特殊脱惰,前端都是把參數(shù)放到了body里面搏嗡,所以我們接收參數(shù)的時(shí)候需要先封裝一個(gè)User對(duì)象出來(lái),然后我們可以直接通過(guò)填寫(xiě)當(dāng)前對(duì)象來(lái)直接賦值從而獲取前端傳遞過(guò)來(lái)的值拉一。
前提是名字要對(duì)得上采盒,比如我們實(shí)體類里面是
private String username
我們前端的參數(shù)key也必須是叫 username:"desc"
這樣他才會(huì)幫我們自動(dòng)調(diào)用set方法,把參數(shù)直接set到這個(gè)實(shí)體類中蔚润。
我們看看postman給我們返回什么吧!
{
"password": "123456",
"name": "desc"
}
沒(méi)問(wèn)題磅氨,以上所有!