package com.ithaobin.demo.demos.web;
import com.ithaobin.demo.demos.entity.User;
import org.springframework.web.bind.annotation.*;
import sun.font.CreatedFontTracker;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;
@RestController
@RequestMapping("/sample")
public class SampleController {
/**
* 利用路径变量获取数据
*
* @param group
* @param uid
* @return
*/
@GetMapping(path = "/{group}/{uid}")
public Map findUser(@PathVariable("group") String group, @PathVariable("uid") String uid) {
Map<String, Object> params = new HashMap<>();
params.put("gorup", group);
params.put("uid", uid);
return params;
}
/**
* 接收请求数据,参数名需保持一致
*
* @param page
* @param rows
* @return
*/
@GetMapping(value = "/page1")
public Map page1(int page, int rows) {
Map<String, Object> params = new HashMap<>();
params.put("page", page);
params.put("rows", rows);
return params;
}
/**
* RequestParam用法,接收请求参数,并设置默认值
*
* @param page
* @param rows
* @return
*/
@GetMapping(value = "page2")
public Map page2(
@RequestParam(defaultValue = "1", name = "p") int page,
@RequestParam(defaultValue = "50", name = "r") int rows
) {
Map<String, Object> params = new HashMap<>();
params.put("page", page);
params.put("rows", rows);
return params;
}
// 测试获取http头信息
@GetMapping("/get_header")
public Map getHeader(
@RequestHeader("token") String accessToken, String id
) {
Map<String, Object> params = new HashMap<>();
params.put("access_token", accessToken);
params.put("id", id);
return params;
}
// 通过原生HttpServletRequest对象获取数据,不推荐
@GetMapping("/raw_request")
public Map testRequest(HttpServletRequest request) {
Map<String, Object> params = new HashMap<>();
String id = request.getParameter("id");
params.put("id", id);
return params;
}
// 查询字符串封装对象
// 注意:请求体传入查询字符串 p1=v1&p2=v2&p3=v3
@PostMapping("/save_user1")
public User saveUser1(User user) {
return user;
}
// @RequestBody 请求体封装对象
// 注意:1、注意需要指定http头为 content‐type为application/json
// 2、使用body传输数据
@PostMapping("/save_user2")
public Map saveUser2(@RequestBody User user) {
Map<String, Object> params = new HashMap<>();
params.put("user", user);
return params;
}
//PUT 方式提交
@PutMapping("/update/{uid}")
public Map updateUser(@PathVariable("uid") String uid) {
Map<String, Object> params = new HashMap<>();
params.put("code", "0");
params.put("message", uid + "员工数据更新成功");
return params;
}
@DeleteMapping("/delete/{uid}")
public Map deleteUser(@PathVariable("uid") String uid) {
Map<String, Object> params = new HashMap<>();
params.put("code", "0");
params.put("message", uid + "员工数据删除成功");
return params;
}
}