- 제목 (최대 20자)
- 본문 (최대 200자)
- 게시글 업로드 시점의 날씨 정보
- 게시글 비밀번호 (6자 이상, 숫자 1개 이상 반드시 포함)
- 게시글 등록일
-
DTO에서 class-validator 적용
-
Entity에서 TypeORM의 @Column 데코레이션으로 최대 길이 제한
- 데이터베이스 charset을 utf8에서 utf8mb4_unicode_ci로 변경 후 적용
- class-validator 제공 정규 표현식 적용
- 등록 시 Request Body에 비밀번호 정보도 같이 받아서 bcrypt로 암호화 후 DB에 저장
- 수정과 삭제 시 비밀번호를 받아서 DB의 비밀번호와 일치하면 수정과 삭제하도록 구현
- 오래된 글들이 추가적으로 로드되어야 하므로 게시글 등록일 기준으로 최신순으로 정렬
- 게시글 목록 조회 API에서 페이징 처리하여 20개 단위로 추가 로드 되도록 구현
- https://www.weatherapi.com 의 Real-time Weather API 사용
- Nest.js의 HttpService를 DI받아서 날씨 API에 요청하여 요청 시점의 한국 날씨 정보를 받아와 저장
- 저장 이후에 수정이 불가하도록 readonly 속성 추가
Swagger Hub:
https://app.swaggerhub.com/apis-docs/kakusi/thinksflow/1.0.0
project/
├─ src/
│ ├─ boards/
│ ├─ database
├─ app.controller.ts
├─ app.module.ts
├─ app.service.ts
├─ main.ts