GET http://localhost:8080
###
POST http://localhost:8080
rest-client.env.json
파일에 파일에 값을 정의
{
"local" : {
"domain" : "http://localhost:8080"
},
"test" : {
"domain" : "http://localhost:9090"
}
}
{{value}}
설정값을 감싸서 설정하고 env 별로 값을 주입할 수 있다.
- 서로 다른 환경에서 다른 환경 세팅을 해야 할 경우 유용하다.
@GetMapping
public String get() {
return "Hello World!";
}
GET http://localhost:8080
@PostMapping
public String post() {
return "Hello World!";
}
POST http://localhost:8080
@PutMapping
public String put() {
return "Hello World!";
}
PUT http://localhost:8080
@DeleteMapping
public String delete() {
return "Hello World!";
}
DELETE http://localhost:8080
@GetMapping("path-variable/{value}")
public String getPathVariable(@PathVariable String value) {
return value;
}
GET http://localhost:8080/path-variable/hello world!!
@PostMapping("model")
public String getModel(@ModelAttribute UserDto userDto) {
return userDto.getUsername() + " " + userDto.getPassword();
}
POST http://localhost:8080/model?username=홍길동&password=패스워드
@PostMapping("body")
public String getBody(@RequestBody UserDto userDto) {
return userDto.getUsername() + " " + userDto.getPassword();
}
POST http://localhost:8080/body
Content-Type: application/json
{
"username" : "홍길동",
"password" : "길동이 패스워드"
}
<
기호를 이용하여 따로 파일에 저장한 값을 불러와 입력으로 쓸 수 있다.
POST http://localhost:8080/body
Content-Type: application/json
< user.json
// user.json
{
"username" : "홍길동",
"password" : "길동이 패스워드"
}
@PostMapping("res-cookie")
public String getResCookie(HttpServletResponse response) {
response.addCookie(new Cookie("token", "token-value"));
return "쿠키 발급";
}
POST http://localhost:8080/res-cookie
@PostMapping("req-cookie")
public String getReqCookie(HttpServletRequest request) {
String token = WebUtils.getCookie(request, "token").getValue();
return "쿠키 value : " + token;
}
POST http://localhost:8080/req-cookie
Content-Type: application/json
Cookie: token=test
http-client.cookies
파일에 값을 정의
- 파일 설정 값이 우선순위가 더 높음
# domain path name value date
localhost / token token-value -1
@PostMapping("req-authorization")
public String getAuthorization(HttpServletRequest request) {
String value = request.getHeader("Authorization");
return "Authorization value : " + value;
}
POST http://localhost:8080/req-authorization
Authorization: Bearer test
@PostMapping("file")
public String getFile(MultipartFile file) {
return file.getName();
}
POST http://localhost:8080/file
Content-Type: multipart/form-data; boundary=boundary
--boundary
Content-Disposition: form-data; name="file"; filename="input.txt"
< input.txt
--boundary
- {{$uuid}} : 범용 고유 식별자 생성
- {{$timestamp}} : 현재 UNIX 타임스탬프 생성
- {{$randomInt}} : 0 ~ 1000 사이의 임의의 정수 생성
@PostMapping("dynamic-variable")
public String getDynamicVariable(@RequestBody DynamicVariable dynamicVariable) {
return dynamicVariable.toString();
}
@Data
static class DynamicVariable {
private String uuid;
private String timeStamp;
private Integer randomInt;
}
POST http://localhost:8080/dynamic-variable
Content-Type: application/json
{
"uuid" : "{{$uuid}}",
"timeStamp" : "{{$timestamp}}",
"randomInt" : "{{$randomInt}}"
}
- @no-cookie-jar : 요청을 날려 쿠키를 받게 되면 자동으로 저장되어 세팅되게 되는데 그것을 방지할 때 사용
- @no-log : 로그를 남기지 않을 때 사용
- @no-redirect : 요청을 리다이렉트 시키려고 하는 것을 막을 때 사용
//
뒤에 적용하기 원하는 기능 작성
- 여러 개 적용을 원할 경우 아래처럼 여러 개 작성하면 된다.
// @no-cookie-jar
// @no-log
POST http://localhost:8080/res-cookie