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 |
---|