한 달 동안 타임리프와 살 부딪히면서 씨름한 결과,
득보다 실이 더 많은 라이브러리라는 판단이 들었다.
경험한 단점으로는
꽤 많은 규칙이 있었다.
컨벤션이라고 해야하나.
암튼 생각보다 고려할 점이 많았지만,
결론은
1. url에 동사를 사용하지 말고, 자원을 명시할 것.
2. 응답만을 보고 클라이언트가 행위를 알 수 있도록 필요한 많은 정보를 제공할 것.
3. http 상태코드를 적절히 사용해서, 응답에 대해서 빠르게 알 수 있도록 할 것.
4. http 메소드를 적절하게 활용해서 url 변칙이 크지 않도록 할 것.
이 정도가 기억난다.
경험을 통해 더 rest 한 api 개발이 가능하도록 해야겠다.
컨트롤러에서 발생하는 예외는 핸들러를 따로 만들어 매핑해줘야 한다.
커스텀 예외를 만들어야 하는 이유가 하나 더 늘었다.
다음번에는 글로벌 예외가 아니라,
예외 상황을 이름만으로 알 수 있는 예외를 만들어 체계적으로 분화하는 과정이 필요할 것 같다.
nullable 컬럼
컨트롤러 인터페이스
interface Controller {
Object allList();
}
@RestController
class RestController implements Controller {
@GetMapping("/all")
public ResponseEntity<Response> allList() {
return ResponseEntity.ok(...);
}
}
@Controller
class ViewController implements Controller {
@GetMapping("/all")
public String allList() {
return "뷰이름";
}
}
PathVariable 이 좀 더 REST 한 api 설계방식이라고 들었습니다.
버저닝
훌륭한 글이네요. 감사합니다.