백엔드 공부/Spring Boot

Spring boot를 통한 REST API구현 - 실습(3)

철매존 2022. 2. 28. 03:33
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을 보내주자.

http://localhost:8080/users

해당 url은 이전 게시물에서는 400에러가 발생한 url이다.
이번에는 코드에서 default로 정의한 것이 return됨을 알 수 있다.