RestAPI 알아보기 (Get - Path variable)

Gihongg·2024년 3월 15일

Spring Boot

목록 보기
2/24

저번 포스트에 이어서 GET의 Path variable에 대해서 알아보자.

Path Variable이란 무엇일까?

  • Path Variable은 URL 경로의 일부를 변수로 사용하는 기능이다.

아래의 예시로 알아보자.


@RestController
@RequestMapping("/api")
public class RestApiController {




    @GetMapping(path = "/echo/{message}") //{} 안의 변수명과 동일하게 만들어주면 된다.
    public String echo(     
            @PathVariable
            String message //path의 {}안에 있는 변수와 동일하게..
    ){

        System.out.println("echo message is "+message);

        //TODO 대문자로 변환
        message = message.toUpperCase();

        return message;

    }
}

URL의 경로를 변수로 사용하기 위해서는 GetMapping 어노테이션을 붙여주고 경로에 {변수명}을 넣어준다.

그리고 메서드의 String 파라미터에 @PathVariable 어노테이션을 붙여준후 변수를 사용하면 된다.

Integer 과 Int의 차이

@PathVariable 을 가지는 파라미터가 정수형을 가지려고 할 때 Integer과 Int 두가지 선택지가 있다.

둘의 차이를 먼저 이야기 하자면

  1. Integer
    Integer은 Java에서 제공하는 Wrapper 클래스입니다.
    null 값을 허용합니다.
    기본값은 null입니다.
  2. int
    int는 Java에서 제공하는 기본 자료형입니다.
    null 값을 허용하지 않습니다.
    기본값은 0입니다.
  3. PathVariable에서의 사용
    PathVariable을 지정할 때 Integer을 사용하면, URL 경로에서 값이 누락되거나 잘못된 값이 입력된 경우 null 값이 전달됩니다.
    PathVariable을 지정할 때 int을 사용하면, URL 경로에서 값이 누락되거나 잘못된 값이 입력된 경우 NumberFormatException 예외가 발생합니다.

활용하기


    @GetMapping(path = "/echo/{message}/age/{age}/is-man/{isMan}") //{} 안의 변수명과 동일하게 만들어주면 된다.
    public String echo(     
            @PathVariable String message, //path의 {}안에 있는 변수와 동일하게..
            @PathVariable int age,
            @PathVariable boolean isMan
    ){

        System.out.println("echo message is "+message);
        System.out.println("echo age is "+age);
        System.out.println("echo isMan is "+isMan);


        //TODO 대문자로 변환
        message = message.toUpperCase();

        return message;

    }
profile
전천후 개발자

0개의 댓글