Spring/API 계층

[Spring] annotation 1 - API 계층

한비Skyla 2024. 6. 11. 19:48

DTO에 적용된 유효성 검증 

@NotBlank - null, 공백, 스페이스 같은 값은 모두 허용되지 않음. 

        - 비어있는 값을 넣을 때 오류라고 돌려버림.

        - patch 로 하나씩 원하는 값을 넣어야 할 때는 알맞지 않음. 

@Pattern - 정규표현식을 활용해서 유효한 값인지 파악. 

         - Null 일 경우 그냥 통과. 내부의 정규표현식은 단 하나라도 문자열이 있을 때 검증. 

         - 빈 문자열도 문자열이라서 검사함. 

 

>> 유효성 검증 애너테이션이 추가된 DTO 클래스에서 유효성 검증 로직이 실행되려면 @Valid 를 붙여야 함. 

@Valid - 객체의 검증 , 유효성 검사를 다 만들어 놓고 안 붙여 놓으면... 유효성 검증이 안됨. 파라미터 부분에 붙여주어야 함.

@PostMapping()
public String signUp(@Valid @RequestBody UserRequest request) {
    return "ok";
}

 

 

@RequestBody - JSON 으로 들어온 거를 자바로 바꿔주는 것. 

@ResponseBody - 자바를 JSON으로 바꿔줌. 

@RestController - @ResponseBody, @Controller 가 포함되어 있음. 

                                - Restful 한 웹서비스를 구축하기 위해 사용.

                                - 데이터를 전달 할 때 선언. 

                                - 단순히 객체만을 반환, 객체 데이터를 JSON, XML gudtlrdmfh HTTP 응답에 담아서 전송. 

             @Controller : Spring에서 Controller 를 지정해주기 위한 어노테이션. 

                                  - Model 객체를 만들어서, 데이터를 담고 View 를 찾음. 

 

 

[Spring] @Controller와 @RestController의 차이

0. @RequestBody, @ResponseBody 어노테이션 보통 웹에서 화면 전환이 없이 이루어지는 동작들은 대부분 비동기 통신으로 이루어진다. 비동기 통신을 하기 위해선 클라이언트가 서버로 요청 메시지의 본

velog.io

 

 

@Controller와 @RestController의 차이점

1.개요 Spring MVC의 @RestController은 @Controller와 @ResponseBody의 조합입니다. Spring 프레임 워크에서 RESTful 웹 서비스를 보다 쉽게 개발할 수 있도록 Spring 4.0에서 추가되었습니다. 근본적인 차이점은 @Contr

dncjf64.tistory.com

 

 

@Validated - 쿼리 파라미터 (Query Parameter, Query String), @Pathvariable 에 대한 유효성 검증을 할 때에는 

                       ⭐️클래스 레벨⭐️에 붙여주어야 함! 

@Pathvariable - 경로 변수 표시하기 위한 매서드에 매개변수에 사용.

                          - localhost:8080/users/1 (이 부분)

                          - url 의 /{ } 과 이름을 맞추고, 그 뒤에 변수는 DTO 에 있는 변수와 맞춤. 

@RestController
@RequestMapping("/v1/members")
@Validated   // (1)
public class MemberController {
		...
		...

    @PatchMapping("/{member-id}")
    public ResponseEntity patchMember(@PathVariable("member-id") @Min(1) long memberId,
                                    @Valid @RequestBody MemberPatchDto memberPatchDto) {
        memberPatchDto.setMemberId(memberId);

 

* 쿼리 파라미터 

: url에서 특정한 조건을 주고 싶을 때. ? 로 나타냄. 검색할 때는 필터링과 동일한 기능. 

 

[API] Path parameter VS Query Parameter (기록용)

Path Parameter 1. path parameter란? URL로는 고유한 자원(resource, data)을 지칭할 수 있습니다. http://naver.com/stocks http://tistory.co.kr/blogs 등을 보면 알 수 있죠. 그러

velog.io

 

@RequestMapping - 클라이언트의 요청에 맞는 클래스나 메서드를 연결시켜줌. 

              - @RequestMapping("url") : 요청방식에 상관없이 url이 일치하는 요청을 처리한다. 

              - 그 후 매서드 레벨에서 Get / Post 방식 등을 구분하여 Mapping 해주어야 한다. 

              - @Getmapping(""), @DeleteMapping(""), @PathMapping("") 등 

 

 

 

 

 

 

'Spring > API 계층' 카테고리의 다른 글

[Spring] Spring 아키텍쳐, MVC  (1) 2024.06.12