Skip to content
This repository was archived by the owner on Sep 8, 2021. It is now read-only.

Latest commit

 

History

History
49 lines (38 loc) · 2.84 KB

ex01.md

File metadata and controls

49 lines (38 loc) · 2.84 KB

Exercise 01 - Hello, ma post!

제출할 폴더 이름 : ex01
제출할 파일 이름 : . (단, 프로젝트와 관련있는 파일이어야 함)
사용 가능한 외부 모듈 : bcrypt, jsonwebtoken, Expressjs team에서 지원하는 middleware
참고사항 : 없음

이제 계정 서버를 만들었고, 실제로 포스팅을 작성하는 api를 만들어볼 차례입니다.

요구사항

  • 이전에 작성했던 ex00를 사용하여야 합니다.
  • 아래의 api를 작성하여야 합니다.
    • 포스트 작성 api
    • 포스트 삭제 api
    • 포스트 수정 api
    • 저장된 포스트를 가장 최근에 작성된 n개까지 불러오는 api
    • 특정유저가 작성한 포스트들을 n개까지 불러오는 api
  • post 테이블과 user 테이블은 Database 상에서 적절한 관계를 가져야합니다.
  • 포스트를 작성할 때 jwt가 유효한 지 체크하여야만 합니다.
  • 포스트의 문자 길이는 1000 자를 넘지 않도록 합니다. 만약 넘는다면, 이후의 초과된 문자열은 DB에서 반영되지 않도록 하여야 합니다.

제약 사항

  • JWT SECRET KEY는 code 내부에 raw로 작성되어 있으면 안됩니다.
  • jwt 발급시 expiration을 설정 하여야 합니다.
  • jwt를 이용하여 인증하는 로직은 middle ware로 구현을 해야 합니다.
  • jwt의 payload 내부에는 반드시 username 필드가 있어야 합니다.
  • 회사 내의 Database는 Mysql을 사용하고 있습니다. 다른 옵션은 지원되지 않습니다.
  • 데이터베이스 핸들링은 ORM을 통해서만 해야합니다.
  • 데이터는 반드시 실제 Database를 연동하여 작업을 진행해야 합니다. 어떠한 형태로든 실제 DB연동 없이 코드 단계에서만 Mockup Data 형식으로 유저의 데이터를 저장하여 다루는 것은 허용되지 않습니다.
  • password를 raw-data 형식으로 저장하는 것은 금지됩니다.

API 명세

앞 선 exercise와 동일하게, 작성한 api에 대한 간단한 문서를 만들어보세요.

  • 여러분이 만든 api들의 리퀘스트/리스폰스 내역에 대해 간단한 api 문서를 작성하세요. 이것은 Mandatory 사항입니다.
  • 작성하는 api 문서에서는 아래의 필드들에 대해서 반드시 명시하여야 합니다.
    • Api의 이름과 설명
    • URL, Method
    • Params, Query, Body (없는 경우 생략 가능)
    • Cookies (없는 경우 생략 가능)
    • Response 별로 Status Code와 메세지
  • 여러분이 작성하는 api가 제공하는 모든 정의된 응답에 대해 기재하여야 합니다.