- helloworld简单实例
- 带参数的Get请求
- 带参数的Post请求
helloworld简单实例
首先我们先创建一个sprngboot项目,新增一个TestController,然后我们先写上一个最基本的get请求,返回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;
}
}
我们简单描述下这个@RestController是什么。
他其实就是@Controller + @ResponseBody 两个注解的合体。
你如果是前后端分离的项目,你就只需要在类上写一个@RestController就可以
相反有一些项目是需要我们返回模板引擎的,那么我们就必须写@Controller,这样返回的时候就能正常返回界面了。
然而当我们需要返回JSON时候,每一个方法前在加一个@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;
}
这样,我们也可以在一个@Controller 之下返回一个json格式的请求。
然后我们用postman发起一个get请求看看是否正常,我们看看postman给我们返回的结果,没问题,发起下一波进攻。
{
"data": null,
"message": "successful",
"status": 200
}
带参数的Get请求
老规矩先贴代码。
@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;
}
然后发起带参数的get请求
localhost:8080/getRequest?username=desc&password=123456
看看结果
{
"password": "123456",
"name": "desc"
}
好,当我们接收一个get请求发过来的参数时我们只需要用到这个@RequestParam注解 他的第一个参数就是我们前端参数的key 这里我们对应的是username,而后面的String username 这个是我们可以指定传递过来后他的类型是什么,叫什么,我们也可以直接重命名为name,不妨你可以试试!!!。
带参数的Post请求
@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请求比较特殊,前端都是把参数放到了body里面,所以我们接收参数的时候需要先封装一个User对象出来,然后我们可以直接通过填写当前对象来直接赋值从而获取前端传递过来的值。
前提是名字要对得上,比如我们实体类里面是
private String username
我们前端的参数key也必须是叫 username:"desc"
这样他才会帮我们自动调用set方法,把参数直接set到这个实体类中。
我们看看postman给我们返回什么吧!
{
"password": "123456",
"name": "desc"
}
没问题,以上所有!