restful实战代码(controller)
package com.baizhi.controller;
import com.baizhi.entities.User;
import com.baizhi.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.util.List;
@RestController
@RequestMapping("/RestUserManager")
public class RestUserController {
private final String File_PATH = "D:/upload/temp/";
@Autowired
private IUserService userService;
//登录传递零散参数
/* @GetMapping("/login/{name}/{password}")
public User userLogin(@PathVariable("name")String name,@PathVariable("password")String password){
try {
User loginUser = userService.userLogin(name,password);
return loginUser;
}catch (Exception e){
e.printStackTrace();
return null;
}
}*/
//登录传递自定义类型参数
//注意:@GetMapping只支持@RequestParam传参(即:只支持零散参数的传递)
@PostMapping("/login")
public User userLogin(@RequestBody User user){
try {
User loginUser = userService.userLogin(user);
return loginUser;
}catch (Exception e){
e.printStackTrace();
return null;
}
}
//注册带文件上传
@PostMapping("/user")
public User registerUser(@RequestPart User user,@RequestParam("photoFile")MultipartFile multipartFile){
try {
String filename=File_PATH + new Date().getTime() +"_"+ multipartFile.getOriginalFilename();
upload(multipartFile,filename);
user.setPhoto(filename);
User regUser = userService.registerUser(user);
return regUser;
}catch (Exception e){
e.printStackTrace();
return null;
}
}
public void upload(MultipartFile multipartFile,String filename){
File file = new File(File_PATH);
if(!file.exists()){
file.mkdirs();
}
//上传
String originalFilename = multipartFile.getOriginalFilename();
if (!"".equals(originalFilename)) {
try {
multipartFile.transferTo(new File(filename));
} catch (IOException e) {
e.printStackTrace();
}
}
}
//根据id查询
@GetMapping("user/{id}")
public User queryById(@PathVariable("id") Integer id){
User user = userService.queryById(id);
return user;
}
//分页查询 pageNow当前页数 pageSize每页条数 column模糊查询的列名 value模糊查询的值
@GetMapping("user/{pageNow}/{pageSize}")
public List<User> queryByPage(
@PathVariable("pageNow") Integer pageNow,
@PathVariable("pageSize") Integer pageSize,
@RequestParam(value = "column",required = false)String column,
@RequestParam(value = "value",required = false)String value){
List<User> users = userService.queryByPage(pageNow, pageSize,column,value);
return users;
}
//根据id删除 批量删除(注意使用restTemplate测试时传递参数时以逗号分隔)
@DeleteMapping("user/{ids}")
public void deleteUserById(@PathVariable("ids") Integer[] ids){
userService.deleteUser(ids);
}
@PutMapping("user")
public void updateUser(@RequestBody User user){
userService.updateUser(user);
}
}
restful测试代码
package com.baizhi;
import com.baizhi.entities.User;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.core.io.FileSystemResource;
import org.springframework.http.*;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import java.io.File;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@SpringBootTest(classes =UserApplication.class)
@RunWith(SpringRunner.class)
public class TestMapper {
@Autowired
private RestTemplate restTemplate;
@Test
public void test1(){
String url="http://localhost:8181/UserApplication/UserManager/user/1";
User user = restTemplate.getForObject(url, User.class);
System.out.println(user);
}
@Test
public void testLogin(){
String url="http://localhost:8181/UserApplication/RestUserManager/login";
User user = new User(5,"suns1",false,"123456",new Date(),"a.png");
User loginUser = restTemplate.postForObject(url,user,User.class);
System.out.println(loginUser);
}
/* @Test
public void test2() {
String url = "http://localhost:8181/UserApplication/UserManager/login/suns/123456";
User user = restTemplate.getForObject(url, User.class);
System.out.println(user);
}*/
@Test
public void testUpdateUser(){
String url="http://localhost:8181/UserApplication/UserManager/user";
User user = new User(5,"suns",false,"123456",new Date(),"a.png");
restTemplate.put(url,user);
}
@Test
public void testDeleteUser(){
String url="http://localhost:8181/UserApplication/RestUserManager/user/9,10,11";
restTemplate.delete(url);
}
//只能上传文件
@Test
public void testRegister(){
//D:\作业\大数据\Spark资料\assets\1561692959066.png
String url="http://localhost:8181/UserApplication/UserManager/user/";
String fileLocal="D:\\作业\\大数据\\Spark资料\\assets\\1561692959066.png";
FileSystemResource resource = new FileSystemResource(new File(fileLocal));
MultiValueMap<String, Object> param = new LinkedMultiValueMap<>();
param.add("photoFile", resource);
HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<MultiValueMap<String, Object>>(param);
ResponseEntity<String> responseEntity = restTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class);
System.out.println(responseEntity.getBody());
}
//@RequestPart 解决同时上传文件和json的解决方案
@Test
public void testRegisterUser() throws JsonProcessingException {
String url="http://localhost:8181/UserApplication/RestUserManager/user/";
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.parseMediaType("multipart/form-data"));
//设置请求体,注意是LinkedMultiValueMap
FileSystemResource fileUpload = new FileSystemResource("C:\\Users\\Lenovo\\Desktop\\images\\图片2.jpg");
MultiValueMap<String, Object> formData = new LinkedMultiValueMap<>();
//文件上传参数
formData.add("photoFile", fileUpload);
//表单参数
formData.add("user",new User(null,"suns7",true,"123456",new Date(),"aa.jpg"));
//用HttpEntity封装整个请求报文
HttpEntity<MultiValueMap<String, Object>> params = new HttpEntity<>(formData, headers);
restTemplate.postForEntity(url, params, User.class);
}
@Test
public void testQueryByPage(){
String url="http://localhost:8181/UserApplication/RestUserManager/user/1/3?column={column}&value={value}";
Map<String,Object> params=new HashMap<>();
params.put("column","name");
params.put("value","suns");
List<User> users = restTemplate.getForObject(url, List.class, params);
for (int i = 0; i < users.size(); i++) {
System.out.println(users.get(i));
}
}
}
form实战代码
package com.baizhi.controller;
import com.baizhi.entities.User;
import com.baizhi.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.util.List;
/**
* 表单
*/
@Controller
@RequestMapping("/FormUserManager")
public class UserController {
private final String File_PATH = "D:/upload/temp/";
@Autowired
private IUserService userService;
@PostMapping("/registerUser")
@ResponseBody
public User registerUser(User user,
@RequestParam(value = "multipartFile",required = false) MultipartFile multipartFile){
try {
String filename=File_PATH + new Date().getTime() +"_"+ multipartFile.getOriginalFilename();
upload(multipartFile,filename);
user.setPhoto(filename);
User regUser = userService.registerUser(user);
return regUser;
}catch (Exception e){
e.printStackTrace();
return null;
}
}
public void upload(MultipartFile multipartFile,String filename){
File file = new File(File_PATH);
if(!file.exists()){
file.mkdirs();
}
//上传
String originalFilename = multipartFile.getOriginalFilename();
if (!"".equals(originalFilename)) {
try {
multipartFile.transferTo(new File(filename));
} catch (IOException e) {
e.printStackTrace();
}
}
}
@PostMapping("login")
@ResponseBody
public User userLogin(User user){
try {
User loginUser = userService.userLogin(user);
return loginUser;
}catch (Exception e){
e.printStackTrace();
return null;
}
}
@GetMapping("/queryByPage")
@ResponseBody
public List<User> queryByPage(@RequestParam(value = "pageNow",defaultValue = "1")Integer pageNow,
@RequestParam(value = "pageSize",defaultValue = "10")Integer pageSize,
@RequestParam(value = "column",required = false)String column,
@RequestParam(value = "value",required = false) String value){
List<User> users = userService.queryByPage(pageNow, pageSize, column, value);
return users;
}
@GetMapping("/queryUserById")
@ResponseBody
public User queryUserById(@RequestParam(value = "id") Integer id){
User user = userService.queryById(id);
return user;
}
@DeleteMapping("/deleteUserById")
@ResponseBody
public void deleteUserById(@RequestParam("ids")Integer[]ids){
userService.deleteUser(ids);
}
@PostMapping("updateUser")
@ResponseBody
public User updateUser(@RequestParam("user") User user){
userService.updateUser(user);
return user;
}
}
form测试代码
package com.baizhi;
import com.baizhi.entities.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.core.io.FileSystemResource;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@SpringBootTest(classes = UserApplication.class)
@RunWith(SpringRunner.class)
public class UserControllerTest {
@Autowired
private RestTemplate restTemplate;
@Test
public void testLogin(){
String url="http://localhost:8181/UserApplication/FormUserManager/login";
MultiValueMap<String, Object> formData = new LinkedMultiValueMap<>();
formData.add("name","suns1");
formData.add("password","123456");
User loginUser = restTemplate.postForObject(url,formData,User.class);
System.out.println(loginUser);
}
@Test
public void testDeleteUserById(){
String url="http://localhost:8181/UserApplication/FormUserManager/deleteUserById?ids={ids}";
restTemplate.delete(url,new int[]{13,14});
}
@Test
public void testQueryById(){
String url="http://localhost:8181/UserApplication/FormUserManager/queryUserById?id={id}";
User user = restTemplate.getForObject(url, User.class, 1);
System.out.println(user);
}
@Test
public void testQueryByPage(){
String url="http://localhost:8181/UserApplication/FormUserManager/queryByPage?pageNow={pageNow}&pageSize={pageSize}&column={column}&value={value}";
Map<String,Object> params=new HashMap<>();
params.put("pageNow","1");
params.put("pageSize","5");
params.put("column","name");
params.put("value","suns1");
List<User> users = restTemplate.getForObject(url, List.class, params);
for (int i = 0; i < users.size(); i++) {
System.out.println(users.get(i));
}
}
@Test
public void testRegisterUser(){
String url="http://localhost:8181/UserApplication/FormUserManager/registerUser";
FileSystemResource fileUpload = new FileSystemResource("D:\\作业\\大数据\\Spark资料\\assets\\1561692959066.png");
MultiValueMap<String,Object> formatdata=new LinkedMultiValueMap<>();
formatdata.add("name","suns");
formatdata.add("sex",false);
formatdata.add("birthday","1994-9-4");
formatdata.add("multipartFile",fileUpload);
formatdata.add("password","123456");
User user = restTemplate.postForObject(url, formatdata, User.class);
System.out.println(user);
}
}