api 설계

보통 프런트단과 백엔드를 분리하게 되면 크기가 고정된 정적인 컨텐츠는 nginx or apache 서버가 먼저 받은후 REST api 호출과 같은 동적인 컨텐츠는 백엔드 프락시로 연동하게 된다.

따라서 모든 REST api는 /api 로 시작하고 이 유알엘로 시작하면 모두 백엔드로 연동된다. 또한 백엔드 연동시 비로그인 유저, 로그인 유저, 관리자 등 권한에 따라서 구분이 되어야 한다. 여기서는 아래와 같이 세가지의 권한으로 구분한다. 그리고 이 세가지 구분은 이미 router 폴더에 user.ts, admin.ts로 구분되어 있다.

/api/user : 일반 사용자

=> hero 목록 보기, 상세보기

/api/member: 로그인 사용자

=> 댓글 달기

/api/admin: 관리자

=> hero 등록, 이미지 등록, 수정, 삭제

페이징 처리된 hero 목록 가져오기

첨부된 포스트맨으로 테스트 후 처리결과를 보면 처리결과를 담을 객체가 하나 필요하다.

result, message 는 필수 파라메터라서 생성자에 선언하였고, data, total을 페이징할때 필요한 속성이라 옵셔널 연산자(?) 를 사용하였다.

UserController에서 데이터 베이스 쿼리문을 작성한다. 대부분의 모든 로직들은 컨트롤러에 들어간다.