728x90
Spring boot로 간단한 rest api를 구현하여 보자!!
DTO를 사용한 값 전달, default설정 등
- DTO를 사용한 값 세팅 및 전달하기
- default값 설정과 required 설정하기
DTO생성
해당 위치에 UserInfoDTO라는 java class를 하나 생성해 준다.
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
public class UserInfoDTO {
private String name;
private String email;
}
해당 클래스의 코드는 다음과 같다.
참고로 여기서 @Data, @NoArgsConstructor을 사용하려면 lombok을 import해줘야 할 것이다.
해당 코드의 위에 커서를 위치하고 ctrl + enter을 눌러 lombok을 import해 준다.
DTO사용하기
UserController로 이동하여, 코드를 이렇게 바꾼다.
import com.appsdeveloperblog.app.ws.dto.UserInfoDTO;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/users")
public class UserController {
@GetMapping(path="/{userId}")
public ResponseEntity<UserInfoDTO> getUser(@PathVariable String userId){
UserInfoDTO userInfoDTO = new UserInfoDTO();
userInfoDTO.setName(userId);
userInfoDTO.setEmail("ryoochan@handsome.king");
return new ResponseEntity<>(userInfoDTO, HttpStatus.OK);
}
@GetMapping
public String getUsers(@RequestParam(value = "page", defaultValue = "1") int page
, @RequestParam(value = "limit", defaultValue = "50") int limit
, @RequestParam(value = "sort", defaultValue = "desc", required = false) String sort ){
return "get users was called with page = " + page + " and limit = " + limit + " and sort type is " + sort;
}
@PostMapping
public String createUser(){
return "create users was called";
}
@PutMapping
public String updateUser(){
return "update user was called";
}
@DeleteMapping
public String deleteUser(){
return "delete user was called";
}
}
서버를 재시작하고 확인하겠다.
POSTMAN에서 먼저 GET으로 해당 url을 사용한다.
http://localhost:8080/users/chan
PathVariable로 보낸 userId가 name에 세팅되고, 다른 값은 미리 저장해둔 값이 들어간다는 것을 알 수 있다.
다음으로 해당 URL을 GET으로 보내 준다.
http://localhost:8080/users?page=5&limit=30&sort=asc
내가 url에 적어서 보낸 값들이 들어간다는 것을 알 수 있다.
그럼 이런 URL을 보내주자.
해당 url은 이전 게시물에서는 400에러가 발생한 url이다.
이번에는 코드에서 default로 정의한 것이 return됨을 알 수 있다.
'백엔드 공부 > Spring Boot' 카테고리의 다른 글
lucy필터로 xss 방어하기(feat JSON, time, 이모지) (0) | 2022.06.27 |
---|---|
Spring boot를 통한 REST API구현 - 이론(3) (0) | 2022.02.28 |
Spring boot를 통한 REST API구현 - 이론(2) (0) | 2022.02.28 |
Spring boot를 통한 REST API구현 - 실습(2) (0) | 2022.02.28 |
Spring boot를 통한 REST API구현 - 이론(1) (0) | 2022.02.27 |