📌 Json viewer
📌 REST API 사용하는 이유
Rest API가 아니면 controller에서 String 메소드를 만들어서 스트링으로 돌려준다 그러면 viewResolver가 작동해서 뷰딴으로 찾아가게 해준다. 하지만 Rest Api는
@ResponseBody를 사용하게되면 HttpMessageConverter가 작동해서 String으로 돌려주면 StringConverter가 작동해서 String으로 돌려주고, 객체로 돌려주면 JsonConverter가 작동해서 json 언어로 돌려주게 된다.그래서 Rest Api는 한개의 값을 돌려주더라도 객체로 돌려주어야 한다. 이유는 jsonConverter 작동을 해야하기 때문이다.
📌 RestAPI 사용시 규칙
- 메소드를 사용할 때 다음과 같이 규칙에 맞춰서 어노테이션을 걸어줘야 한다
- 약속같은 것이다.
📌 @RestController
- API 작업할 때 사용하는 것이다.
- Controller + ResponseBody(jsonConver + StringConverter 작동시켜줌) json형태로 돌려주어야지 모든 회사가 개발하더라도 다 수용이 가능하다 / 리턴할때 ResponseBody를 생략시켜 준다.
📌 REST API 기본 예시
📌 나쁜 예시
- 예를들어서 리스트 객체로 리턴값을 보냈는데 DTO에 있는 모든 값들이 갈 경우, 불필요한 값까지 전달되기 때문에
정말 필요한 값들만 전달 될 수 있도록 별도의 클래스를 만들 필요가 있다.
- 다음과같은 클래스를 하나 만들어서 이름과 급여만 필요하다고 가정하면 이것만 정의하고 돌려주면 된다.
📌 좋은 예시
- 전체 데이터를 리스트로 가져온 상황인데 필요한 것들만 리스트 형태로 담아서 돌려준다.
- class Result 는 만일 나중에 어떠한 컬럼이 추가된다고 가정하면 기존 DTO에 신규 컬럼을 추가하게되면 모든 데이터가 전부 수정되어야 하기 때문에 이렇게 추가할 수 있다.
📌 좋은 예시(람다)
📌 PUT 방식