Skip to content

Instantly share code, notes, and snippets.

@JamesHopbourn
Last active March 10, 2024 08:42
Show Gist options
  • Save JamesHopbourn/c7e2de30ebba5aa6d58eccbd9ce78c78 to your computer and use it in GitHub Desktop.
Save JamesHopbourn/c7e2de30ebba5aa6d58eccbd9ce78c78 to your computer and use it in GitHub Desktop.
import cn.hutool.core.map.MapBuilder;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.personal.Result;
import com.example.personal.entity.Person;
import com.example.personal.service.PersonService;
import org.apache.commons.io.IOUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.websocket.server.PathParam;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.Map;
@RestController
public class ArgumentController {
@Resource
private PersonService personService;
// http POST :8080/post name=James age=23
@PostMapping("post")
public Result post(@RequestBody Person person){
personService.save(person);
return Result.success(person.toString());
}
// echo '[{"name": "James", "age": 24},{"name": "Hopbourn", "age": 30}]'|http POST ':8080/post-list'
@PostMapping("post-list")
public Result postList(@RequestBody List<Person> personList){
personService.saveBatch(personList);
return Result.success(personList);
}
// http ':8080/get?name=James'
@GetMapping("get")
public Result get(Person person){
LambdaQueryWrapper<Person> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(Person::getName, person.getName());
List<Person> list = personService.list(wrapper);
return Result.success(list);
}
// http POST :8080/post-basic name=James
@PostMapping("post-basic")
public String postBasic(@RequestBody JSONObject jsonObject){
System.out.println(jsonObject.get("name"));
return jsonObject.toJSONString();
}
// http ':8080/getPathParam?param=argv1'
@GetMapping("getPathParam")
public String getPathParam(@PathParam("param") String param){
return "getPathParam " + param;
}
// http ':8080/getRequestParam?param=argv1'
@GetMapping("getRequestParam")
public String getRequestParam(@RequestParam String param){
return "getRequestParam " + param;
}
// http ':8080/list?page=1&size=10'
@GetMapping("list")
public Result list(@RequestParam(defaultValue = "1") int page,
@RequestParam(defaultValue = "10") int size){
Page<Person> personPage = new Page<>(page, size);
Page<Person> pageResult = personService.page(personPage);
Map<String, Object> map = MapBuilder.<String, Object>create()
.put("total", pageResult.getTotal())
.put("pages", pageResult.getPages())
.put("list", pageResult.getRecords())
.build();
return Result.success(map);
}
// http :8080/get/1766741458314018818
@GetMapping("get/{id}")
public Result getId(@PathVariable Long id){
Person person = personService.getById(id);
return Result.success(person);
}
// http ':8080/get-array?array=A,B,C,D'
@GetMapping("get-array")
public Result getArray(String[] array){
for (String s : array) {
System.out.println(s);
}
return Result.success(array);
}
// http ':8080/get-int-array?array=1,2,3,4'
@GetMapping("get-int-array")
public Result getIntArray(int[] array){
for (int i : array) {
System.out.println(i);
}
return Result.success(array);
}
// http -d ':8080/download?name=James'
@GetMapping("download")
public void downloadAudio(@RequestParam("name") String name, HttpServletResponse response) throws IOException {
response.setContentType("text/plain");
String encodeName = URLEncoder.encode(name, "UTF-8").replace("+", "%20");
response.setHeader("Content-Disposition", String.format("attachment; filename=\"%s.txt\"", encodeName));
try (PrintStream printStream = new PrintStream(response.getOutputStream())) {
printStream.println("你好" + name);
printStream.flush();
}
}
// http -f POST :8080/upload file@'James.txt'
@PostMapping("upload")
public void importExcel(HttpServletRequest request) throws IOException {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
MultipartFile file = fileMap.get("file");
InputStream inputStream = file.getInputStream();
String result = IOUtils.toString(inputStream, StandardCharsets.UTF_8);
System.out.println(result);
}
// http ':8080/header' token:abcdefghijklmnopqrstuvwxyz
@GetMapping("header")
public String header(@RequestHeader String token){
return token;
}
}
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.13.0</version>
</dependency>
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>2.0.20</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-core</artifactId>
<version>5.8.18</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment