[Spring] 파라미터를 넘겨받는 방법

박이레·2022년 10월 20일
0

Spring

목록 보기
4/12
post-thumbnail

 처음 프로그래밍 공부를 시작했을 때 '매개변수'가 참 좋았습니다. 어딘가 모르게 멋있어 보였습니다. 책이나 강의에서는 매개변수를 때론 파라미터 때론 입력값으로 불렀습니다. 저도 그렇게 혼용해서 사용했습니다. 표준국어대사전을 찾아보니 매개변수와 파라미터 사이에는 약간의 차이가 있었습니다. 파라미터가 좀 더 정확한 표현인 것 같습니다. 누군가 제 이름을 잘못 부르면 기분이 유쾌하지 않듯이 파라미터도 정확한 이름을 불러주고 싶습니다.(ENFJ의 특징이라고 합니다 ^^;) 이 글에서는 파라미터를 넘겨받는 방법에 대해 알아봅니다.

매개변수와 파라미터

매개변수
1. 두 개 이상의 변수 사이의 함수 관계를 간접적으로 표시할 때 사용하는 변수.

파라미터
1. 두 개 이상의 변수 사이의 함수 관계를 간접적으로 표시할 때 사용하는 변수.
2. 정보·통신 사용자가 원하는 방식으로 자료가 처리되도록 하기 위하여 명령어를 입력할 때 추가하거나 변경하는 수치 정보.


@PathVariable

@PathVariable을 이용하면 /{id}와 같이 URI의 경로로 넘어오는 값을 변수로 받을 수 있습니다.

@RestController
@RequestMapping("test")
public class TestController {

@GetMapping("/{id}")
public String testPathVariables(@PathVariable(required = false) int id) {
	return "" + id; //String으로 변환하기 위해 공백을 더했습니다.
	}
}

localhost:8080/test/1234567890로 Get 요청을 보내면 아래와 같은 값을 얻을 수 있습니다.


@RequestParam

@RequestParam을 이용하면 ?id={id}와 같이 요청 파라미터로 넘어노는 값을 받을 수 있습니다.

@RestController
@RequestMapping("test")
public class TestController {

@GetMapping("/testRequestParam")
public String testPathVariables(@RequestParam(required = false) int id) {
	return "" + id; //String으로 변환하기 위해 공백을 더했습니다.
	}
}

localhost:8080/test/testRequestParam?id=1234567890로 Get 요청을 보내면 아래와 같은 값을 얻을 수 있습니다.


@RequestBody

@RequestBody는 반환하고자 하는 리소스가 복잡할 때 사용합니다. 기본 자료형이 아닌 오브젝트처럼 복잡한 자료형을 요청에 보내고 싶은 경우 사용합니다.

dto를 요청 body로 받아보겠습니다.

@Data
public class TestRequestBodyDYO {
	private int id;
    private String message;
}
@RestController
@RequestMapping("test")
public class TestController {
	@GetMapping("/testRequestBody")
    public String testRequestBody(@RequestBody TestRequestBodyDTO testRequestBodyDTO) {
    return testRequestBodyDTO.getId() + testRequestBodyDTO.getMessage();
    }
}

localhost:8080/test/testRequestBody로 Get 요청을 보내면서 요청 바디에 JSON 형태의 문자열을 넘겨주면 아래와 같은 값을 얻을 수 있습니다.


@ResponseBody

@ResponseBody는 응답으로 오브젝트를 리턴합니다.

dto에 담아 리턴하겠습니다.

@GetMapping("/testResponseBody")
public ResponseDTO<String> testResponseBody() {
	List<String> list = new ArrayList<>();
    list.add("Hello World!");
    ResponseDTO<String> response = ResponseDTO.<String>builder
                                              .date(list)
                                              .build();
	return response;

-작성중


💁‍♂️reference

React.js, 스프링 부트, AWS로 배우는 웹 개발 101

김다정 지음ㅣ에이콘ㅣ2022ㅣ도서 정보

EOD.

profile
혜화동 사는 Architect

0개의 댓글