Spring Boot Web의 여러가지 기능-(1)

개발세발·2024년 1월 22일

응답을 만드는 방법

  1. String: 일반 Text Type으로 응답
  2. Object: 자동으로 Json으로 변환되어 응답, 상태값은 항상 200 OK
  3. ResponseEntity: Body의 내용을 Object로 설정하고 상황에 따라서 HttpStatus Code를 설정
  4. @ResponseBody: RestController가 아닌 Controller에서 Json 응답을 내릴 때
@Slf4j
@RestController //응답 값이 json으로 내려가겠다.
//@RequestMapping("/api/vi")
public class ReponseAPIController {

    @GetMapping("")//-> http://localhost:8080/user/vi 디폴트로 지정
    public ResponseEntity<UserRequest> user(){
        var user = new UserRequest();
        user.setName("홍길동");
        user.setUserAge(20);
        user.setEmail("hong@gmail.com");

        log.info("user : {}",user);
//원하는 HttpStatusCode의 값을 나타내고 싶을 때 ReponseEntity를 사용한다.
        var reponse = ResponseEntity
                .status(HttpStatus.OK)
                .header("x-customs", "hi")
                .body(user);
        return reponse;
    }
}
  • @GetMapping(""): 어노테이션에 주소를 안 적어주면 디폴트 주소로 위에 @RequestMapping에 매핑된 주소로 연결

  • return의 형태로 ReponseEntity를 사용: 여러 형태의 에러 코드를 사용하기 위해서
    .status()로 Http의 상태(Status)를 지정할 수 있고
    .body()에는 객체를 지정.

  • ResponseEntity<UserRequest>를 통해 명시적으로 ResponseEntity에 UserRequest타입을 받겠다고 선언해준다.

  • header()를 통해서 추가적으로 응답을 내려줄 수도 있다.

@RestController를 사용한다-> RestAPI를 사용하고, 응답값을 Json으로 지정하겠다라고 선언하는 것.

@Controller: Json 이외의 응닶값을 사용하려면 해당 어노테이션을 사용, 컨트롤러 어노테이션 사용 시 @ResponseBody를 통해 Json 형식으로 응답받을 수 있음.

  • RequestMapping을 통해서 메소드에도 경로를 지정해 줄 수 있음.

0개의 댓글