Skip to content

레이어간 데이터 전달 형식 정의 #36

Closed
@junha-ahn

Description

@junha-ahn

Description

각 레이어간 데이터 형식 정의

Nodejs에서는(Not nestjs) 응답형식도 정해야했던 기억이 있습니다.

스프링부트에서도 동일한지는 모르겠으나, 각 레이어간, 또는 HTTP Response의 데이터 형식을 통일시켜야함을 분명할 것입니다. (Default가 존재함에도)

자료조사와 형식 정의를 부탁드립니다. (출처 남겨주십시요)

image

참고: PR

#28 (comment)

// as is
return ResponseEntity.ok().body(save)

// to be
return ResponseEntity.body(posted).status(HttpStatus.OK)

참고: Nodejs 경험

하나하나 다 자유로운 Nodejs(?)

Response.js

const Response = (statusStep = 1) => (
  httpCode = 500,
  message = '서버 내부에 장애가 발생했습니다.',
  data = null,
) => {
  return {
    status: (statusStep === 0),
    httpCode,
    message,
    data,
  }
}

To do

  • HTTP Response - (2xx 응답 데이터, 4xx 에러 데이터, custom-message/Type 등 형식 통일)
  • Service => Controller 에러 형식 (즉 레이어 계층별 Error Handling)

그 외)

  • 논의 후 Wiki에 정의
  • http response는 프론트 엔드 개발자의 입장을 고려해주세요
    • . 응답이 요청에 따라 타입이 object, list, text, int 에 대한 parsing 처리
    • 2xx 일때와 4xx일때의 형식이 아예 다르거나 하는 등
// frontend

// Default ?
const response = await axios.get('/book')
{ id: 1, title: '', ...}

const response = await axios.get('/books')
[{ id: 1, title: '', ...}, {...}, {...}]

const response = await axios.post('/book')
1234

// else, Custom 
const response = await axios.get('/book')
{msg: 'success', data: {id:1, title: ''...}}

Test Checklist

  • 개발자는 (앞으로 작성될) 문서를 통해 데이터 형식을 일치시켜 개발할 수 있어야합니다.
  • 또는 해당 문서를 통해 코드 리뷰 할 수 있어야 합니다.

Metadata

Metadata

Labels

documentationImprovements or additions to documentationquestionFurther information is requested

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions