제출할 폴더 이름 : | ex02 |
제출할 파일 이름 : | . (단, 프로젝트와 관련있는 파일이어야 함) |
사용 가능한 외부 모듈 : | bcrypt, jsonwebtoken, Expressjs team에서 지원하는 middleware |
참고사항 : | 없음 |
포스트를 작성하는 api도 만들었으니, 댓글을 달 수 있는 api도 작성해보도록 합시다. 댓글에 댓글도 작성할 수 있으면 좋겠네요. 대대댓글도 괜찮은가요? 댓글의 Depth와 백엔드의 흡연양의 양의 상관관계를 생각하며 여러분은 스트레스를 받기 시작합니다.
- 이전에 작성했던 ex00, ex01를 사용하여야 합니다.
- 아래의 api를 작성하여야 합니다.
- 포스트에 댓글을 작성하는 api
- 댓글에 댓글을 작성하는 api
- 특정 댓글을 삭제하는 api
- 특정 댓글의 내용을 수정하는 api
- 특정 포스트에 대한 댓글을 불러오는 api
- 특정 댓글에 대한 댓글을 불러오는 api
- Database에서 reply라는 별도의 테이블을 정의하여야 합니다.
- post, user, reply 테이블은 Database 상에서 적절한 관계를 가져야합니다.
- 댓글, 대댓글을 작성할 때 jwt가 유효한 지 체크하여야만 합니다.
- 댓글의 길이는 200 자를 넘지 않도록 합니다. "그건 저희 쪽에서 200자까지만 요청이 들어가도록 할게요"라고 프론트엔드 팀원이 이야기를 하네요!
- JWT SECRET KEY는 code 내부에 raw로 작성되어 있으면 안됩니다.
- jwt 발급시 expiration을 설정 하여야 합니다.
- jwt를 이용하여 인증하는 로직은 middle ware로 구현을 해야 합니다.
- jwt의 payload 내부에는 반드시
username
필드가 있어야 합니다. - DB에서 생성하거나 작성한 테이블들은 기능에 따라 적절한 관계를 서로 가지고 있어야합니다.
- 회사 내의 Database는 Mysql을 사용하고 있습니다. 다른 옵션은 지원되지 않습니다.
- 데이터베이스 핸들링은 ORM을 통해서만 해야합니다.
- 데이터는 반드시 실제 Database를 연동하여 작업을 진행해야 합니다. 어떠한 형태로든 실제 DB연동 없이 코드 단계에서만 Mockup Data 형식으로 유저의 데이터를 저장하여 다루는 것은 허용되지 않습니다.
- password를 raw-data 형식으로 저장하는 것은 금지됩니다.
앞 선 exercise와 동일하게, 작성한 api에 대한 간단한 문서를 만들어보세요.
- 여러분이 만든 api들의 리퀘스트/리스폰스 내역에 대해 간단한 api 문서를 작성하세요. 이것은 Mandatory 사항입니다.
- 작성하는 api 문서에서는 아래의 필드들에 대해서 반드시 명시하여야 합니다.
- Api의 이름과 설명
- URL, Method
- Params, Query, Body (없는 경우 생략 가능)
- Cookies (없는 경우 생략 가능)
- Response 별로 Status Code와 메세지
- 여러분이 작성하는 api가 제공하는 모든 정의된 응답에 대해 기재하여야 합니다.