@Slf4j
@RestController
@RequestMapping("/api/V1")
public class ResponseApiController {
@GetMapping("")
public Quet q1(){
var quet = new Quet();
quet.setUserName("홍길동");
quet.setUserPhone("010-2032-3213");
quet.setUserEmail("lstoddsa@gmail,com");
log.info("string : {}",quet);
return quet;
}
}
@Slf4j
@RestController
@RequestMapping("/api/V1")
public class ResponseApiController {
@GetMapping("")
public ResponseEntity<Quet> q1(){
var quet = new Quet();
quet.setUserName("홍길동");
quet.setUserPhone("010-2032-3213");
quet.setUserEmail("lstoddsa@gmail,com");
log.info("string : {}",quet);
var respone = ResponseEntity //생성
.status(HttpStatus.CREATED) // Http스테이터스 정의
.header("x-custom","hi") //헤더커스텀
.body(quet); // 객체를 넣으면 됨
return respone;
}
html을 응답값으로 내려줄 수 있다.
json으로 반환하려면 @responsebody를 활용
@SpringBootTest
class RestapiApplicationTests {
@Autowired //스프링에서 관리하는 빈들 중 자동으로 사용되는 object mapper를 가져온다는 것
private ObjectMapper objectmMapper;
@Test
void contextLoads() throws JsonProcessingException { // objectmMapper.writeValueAsString(user);을 사용시 예외가 발생할 수도 있다.
var user = new Quet();
user.setUserName("hong");
user.setUserAge(10);
user.setUserEmail("lsoydsa@gmail.com");
user.setIskorean(true);
var json = objectmMapper.writeValueAsString(user); //직렬화는 write사용
System.out.println(json);
var dto = objectmMapper.readValue(json,Quet.class);//역직렬회는 read 사용
System.out.println(dto);
}
}
마찬가지로 set이나 get메소드를 기준으로 매핑한다. 하지만 변수명이 같아야 동작한다.
하지만 getter,setter을 사용하지 않으려면 @JsonProperty로 동작가능 하지만 변수가 많으면 말이 안되기 때문에 기본으로 사용하자