PathVariable 으로 id 값을 넘길 때

2021. 10. 24. 17:01·개발중/Spring Boot
728x90
반응형

아래와 같이 값 정보 반 때 이런 로직을 만들고 싶다.

 

id 값이 있다면 => 전체 목록을 반환

id 값이 없다면 => id 값 정보 반환


 

    @GetMapping("/{id}")

    public ResponseEntity<CommonResponse> getLicenses(

        LicenseSearch licenseSearch

        , @PathVariable(name="id", required = false) long id) {

       

        if(id == 0){

            return ResponseEntity.ok().body(

                new CommonResponse(

                    licenseService.getAllLicenseByLicenseSearch(licenseSearch)

                    , LicenseHateoas.values()

                )

            );

        }else{

            return ResponseEntity.ok().body(

                new CommonResponse(

                    licenseService.getLicenseById(id)

                )

            );

        }

    }


현재는 이렇게 두가지 메소드를 타고 있는데 어떤게 더 나은 방법인지 고민을 해봐야 겠다,

명확하다고 생각하는 법은 이 방법이지만 위의 방법처럼 할 경우에는 하나의 메소드에서 분기 처리가 가능하기 때문에 메소드가 많아지지 않고,

 

근데 또 하나의 API 는 하나의 일을 해야 하니까 이 방법이 맞는 것 같기도 하고.

진지하게 고민을 좀 해봐야 겠고만.


 

    @GetMapping("")

    public ResponseEntity<CommonResponse> getLicenses( LicenseSearch licenseSearch ) {

        return ResponseEntity.ok().body(

            new CommonResponse(

                licenseService.getAllLicenseByLicenseSearch(licenseSearch)

                , LicenseHateoas.values()

            )

        );

    }

 

    @GetMapping("/{id}")

    public ResponseEntity<CommonResource> getLicenses(@PathVariable(name = "id", required = true) long id) {

        return ResponseEntity.ok().body(new CommonResource(licenseService.getLicenseById(id), LicenseHateoas.values()));

    }


 

728x90
반응형
저작자표시 (새창열림)

'개발중 > Spring Boot' 카테고리의 다른 글

[ 스프링 ] 의존성 주입 방법 ?  (0) 2021.12.02
스프링 대용량 엑셀 (excel) 업로드  (0) 2021.11.08
@ResponseBody 어노테이션의 post 와 put 의 차이  (0) 2021.10.04
[ Spring Security - BCryptPasswordEncoder ] 비밀번호 암호화  (0) 2021.08.18
vo Null 처리  (0) 2021.08.17
'개발중/Spring Boot' 카테고리의 다른 글
  • [ 스프링 ] 의존성 주입 방법 ?
  • 스프링 대용량 엑셀 (excel) 업로드
  • @ResponseBody 어노테이션의 post 와 put 의 차이
  • [ Spring Security - BCryptPasswordEncoder ] 비밀번호 암호화
Binsoo
Binsoo
내 트러블 슈팅
  • Binsoo
    정수빈 기술블로그임.
    Binsoo
  • 전체
    오늘
    어제
    • 빈수 개발자 개발 일기 (932) N
      • 개발중 (634) N
        • Spring Boot (95)
        • Spring Security (2)
        • Spring Batch (6)
        • Spring Boot & Redis (13)
        • Java Persistence API (JPA) (28)
        • Web (42)
        • Rest Api (7)
        • Spring Concurrency Control (3)
        • Redis (8)
        • Kubernetes (k8s) (4)
        • MYSQL (35)
        • AirFlow (15)
        • Docker (2)
        • Git (22)
        • Linux (9)
        • JSON Web Tokens (JWT) (4)
        • Troubleshooting (87)
        • Swagger (0)
        • Vue.js (52)
        • Java (74)
        • html (12)
        • C (5)
        • jQuery (15)
        • JavaServer Pages (JSP) (17)
        • Arduino (1)
        • JavaScript (35)
        • Amazon Web Services (AWS) (11)
        • Algorithm (9)
        • 참고 기능 (18) N
        • mongo (2)
      • PROJECT (27)
        • 스프링부트+JPA+몽고 API 개발 (3)
        • MINI (2)
        • 게시판 (3)
        • vue 프로젝트 (1)
        • JPA 사이드 프로젝트 기록 (17)
      • TEAM STUDY (156)
        • 가상 면접 사례로 배우는 대규모 시스템 설계 기초 (8)
        • 한 권으로 읽는 컴퓨터 구조와 프로그래밍 (12)
        • NAVER DEVELOPER (4)
        • LINUX (23)
        • PYTHON (19)
        • SERVER (8)
        • 알고리즘 코딩 테스트 스터디 (31)
        • 쿠버네티스 (40)
        • 대세는 쿠버네티스 [초급~중급] (11)
      • BOOK (0)
      • 자격증 (61)
        • 리눅스 1급 - 필기 기록 (19)
        • 네트워크 관리사 (2)
        • 네트워크 관리사 2급 - 실기 기록 (21)
        • 네트워크 관리사 2급 - 필기 기록 (16)
        • 정보처리 (2)
      • 직장인 대학원 (17)
        • 기록 (1)
        • 캐글 스터디 (3)
        • R (12)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    리눅스 마스터
    네트워크 관리사 2급
    리눅스 마스터 1급
    리눅스 마스터 1급 요약
    springboot
    파이썬
    쿠버네티스
    REST API
    git
    VUE
    리눅스 마스터 1급 정리
    스프링
    리눅스 마스터 요약
    BackendDevelopment
    파이썬 알고리즘
    리눅스 1급 요약
    쿠버네티스 스터디
    네트워크 관리사 실기
    네트워크 관리사 학점
    네트워크 관리사 2급 실기
    네트워크 관리사
    알고리즘
    Spring
    네트워크 관리사 자격증
    java
    jpa
    Git 저장소
    네트워크 관리사 요약
    docker
    redis
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
Binsoo
PathVariable 으로 id 값을 넘길 때

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.