
Rest API
controller -> 메서드 + URL 조합해서 Restful 하게 만들수 있다
Response-> HTTP 상태코드를 잘 활용해야 Restful 하다고 표현한다
400
Syntax
package com.hmy.springbasic.controller;
import java.util.Date;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
//JSON Response 형태로 반환하는 컨트롤러로 인식 시키기
@RestController
//HTTP * localhost:4000/response-data/**
@RequestMapping("/response-data")
public class ResponseDataController {
//HTTP GET localhost:4000/response-data/{name}
@GetMapping("/{name}")
public ResponseDto responseBodyMethod(
@PathVariable("name") String name
) {
ResponseDto response = new ResponseDto(name, new Date());
return response;
}
}
//name 문자열 데이터 반환
// date 날짜 데이터 반환
// 객체{
// "name" : "홍길동",
// "date" : "2024-08-23 ~~~~"
//}
@Getter
@NoArgsConstructor
@AllArgsConstructor
class ResponseDto {
private String name;
private Date date;
}
결과화면

작업이 성공하면 HttpStatus를 200번이 아닌 BAD_REQUEST(400)번으로 반환하겠다.
@RestController
@RequestMapping("/response-data")
public class ResponseDataController {
@GetMapping("/response-entity/{name}")
public ResponseEntity<ResponseDto> responseEntity(
@PathVariable("name") String name
){
ResponseDto response = new ResponseDto(name, new Date());
//return new ResponseEntity<>(response, HttpStatus.BAD_REQUEST);
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null);
}
}
@Getter
@NoArgsConstructor
@AllArgsConstructor
class ResponseDto {
private String name;
private Date date;
}
return 2가지 방법
1. return new ResponseEntity<>(response, HttpStatus.BAD_REQUEST);
2. return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null);
결과화면
