0.0.5 • Published 4 years ago
bo-api-starter-ts v0.0.5
bo-api-starter-ts
블록오디세이를 위한 Express Api Starter이며 기존의 bo-api-starter 패키지를 TypeScript 기반으로 재작성한 것입니다.
Table of Contents
Getting Started
Project Installation
:fire: npm i bo-api-starter-ts
명령어를 사용하면 프로젝트가 정상적으로 설치되지 않습니다. :fire:
Install Dependencies
Project Dependencies
- Server : Express
- Database : MySQL
- Authentication : jsonwebtoken
- AWS S3 : multer, multer-s3
- Environment Variables : dotenv
- HTTP Request Logger : morgan
- Development Only : nodemon, TypeScript, ts-node
Project Environment Setup
- .env.example 파일을 복사하여 .env 파일로 변경해줍니다.
- example로 되어 있는 값들을 실제 환경에 맞게 수정해줍니다.
- nodemon을 사용하고자 하는 경우 package.json을 다음과 같이 수정해줍니다.
- 토큰 인증이 필요한 URL의 경우 미들웨어(/middleware/app/index.ts 혹은 /middleware/web/index.ts)에서 추가하면 됩니다.
Project Structure
Project Run
Guidelines
HTTP Status Codes
200 OK : 데이터 조회, 삭제 성공 (GET, DELETE)
201 Created : 데이터 생성, 수정 성공 (POST, PUT)
400 Bad Request : 잘못된 요청일 경우
401 Unauthorized : 인증이 필요하거나 권한이 없는 경우
404 Not Found : 요청한 데이터를 찾을 수 없는 경우
409 Conflict : DB에 데이터가 이미 존재하는 경우 (데이터 중복)
500 Internal Server Error : 내부 서버 에러
Other Rules
Files and Variables
- 모든 파일명과 변수명은 camelCase를 따르는 것을 원칙으로 한다.
- 서비스의 파일명과 변수명은 '동사+명사' 형태로 지어 어떠한 기능을 하는지 직관적으로 알 수 있도록 한다.
- 서비스의 파일은 총 4가지만 허용한다. (insertUser, getUser, updateUser, deleteUser)
API URI 설계
- 동사보다는 명사를, 대문자보다는 소문자를 사용한다.
자원에 대한 행위는 HTTP Method로 표현하며 URI에 HTTP Method가 들어가면 안된다. 또한 CRUD 기능을 나타내는 것 역시 URI에 들어가서는 안된다.
URI 마지막 문자로 슬래시(/)를 포함하지 않는다.
밑줄(_)은 URI에 사용하지 않으며 필요한 경우 하이픈(-)을 사용한다.
앱에서 필요한 URI는 /app 밑에, 웹에서 필요한 URI는 /web 밑에 작성하도록 한다.