[API]Log - gyunam-bark/nb02-how-do-i-look-team1 GitHub Wiki

설계

flowchart TD
    FRONT_END --> ENDPOINT
    ENDPOINT -->|'/logs'| ROUTER
    ROUTER --> CONTROLLER
    CONTROLLER <--> SERVICE
    SERVICE <--> DATABASE
    CONTROLLER -->|FAIL| GLOBAL_ERROR_HANDLER
    GLOBAL_ERROR_HANDLER --> FRONT_END
    CONTROLLER -->|SUCCESS| FRONT_END

스키마

model Log {
  logId      Int      @id @default(autoincrement())
  ip         String
  url        String
  method     String
  statusCode String
  message    String
  createdAt  DateTime @default(now())
}

시행착오

스키마 형태 고민

처음에는 에러 발생 원인에 따라서 다양한 형태가 될 수 있다고 생각해서 detail 이란 항목을 json 형태로 저장했다.

model Log {
  logId      Int      @id @default(autoincrement())
  detail.    Json
  createdAt  DateTime @default(now())
}

그런데 애초에 API 명세서 대로만 반환값이 나와서, 에러의 형태가 달라질 일이 없다는 것을 깨달았다.

처리 속도와 직관적인 면에서 이 스키마를 수정하는 게 좋겠다는 생각이 들어서 각 요소를 직접적으로 테이블에 추가했다.

model Log {
  logId      Int      @id @default(autoincrement())
  ip         String
  url        String
  method     String
  statusCode String
  message    String
  createdAt  DateTime @default(now())
}

### FE 연동
FE 에 새로운 페이지를 추가하면서 아래의 가이드를 작성해서 팀원들에게 배포했다.

[FE 새 페이지 생성 가이드](https://github.com/gyunam-bark/nb02-how-do-i-look-team1/wiki/%5B%EA%B4%80%EB%A6%AC%5D%ED%94%84%EB%A1%A0%ED%8A%B8%EC%97%94%EB%93%9C-%EC%83%88%EB%A1%9C%EC%9A%B4-%ED%8E%98%EC%9D%B4%EC%A7%80-%EC%B6%94%EA%B0%80-%EA%B0%80%EC%9D%B4%EB%93%9C)