-
Notifications
You must be signed in to change notification settings - Fork 0
Rest API Message Protocol
hyoguoo edited this page Mar 31, 2024
·
2 revisions
아래의 내용은 Rest API 통신의 전반적인 규칙을 정의하며, 자세한 요청 및 응답에 대한 내용은 Swagger
를 통해 정의한다.
전반적으로 아래의 규칙을 따르며, 필요에 따라 팀원과 상의하여 정의한다.
- URI: Resource
- 명사 사용
- 복수형 사용
- 하이픈(
-
) 사용
- Method: HTTP Method
- GET: 조회
- PUT: 수정
- DELETE: 삭제
- POST: 그 외
- Parameter
- Query String
-
key=value
형태로 작성 -
&
로 구분 -
CammelCase
로 작성
-
- Request Body
- JSON 형태로 작성
-
CammelCase
로 작성
- Query String
성공 응답은 success
필드가 true
로 설정되며, response
필드에 응답 데이터를 포함한다.(응답 데이터가 없는 경우 생략 가능)
{
"success": true,
"response": {
"status": "UP"
}
}
에러 응답은 success
필드가 false
로 설정되며, error
필드에 에러 코드와 메시지를 포함한다.
{
"success": false,
"error": {
"errorCode": "E00202",
"message": "비밀번호가 일치하지 않습니다."
}
}
에러 응답 메시지에 HTTP Status Code 외에 구체적인 Custom Error Code를 포함하여 클라이언트에게 에러 상황을 전달한다.
- 도메인
number | domain |
---|---|
0 | Auth |
1 | Member |
2 | Solve |
3 | Room |
4 | Problem |
5 | RoomMember |
6 | AWS S3 |
7 | Compile |
- 에러 종류
number | situation |
---|---|
0 | 요청 메시지 형식 오류 |
1 | 도메인 로직 상의 오류 |
2 | 인증, 인가 오류 |
3 | 존재하지 않는 리소스에 접근한 경우 |
4 | 외부 API 연동 중 오류 |
예를 들어, 비밀번호가 일치 않는 경우의 Custom Error Code는 E00202
로 정의되며, 다음과 같은 의미를 가진다.
E00202
| || |
| || └── 순번(01, 02, 03, ...)
| |└── 에러 종류
| └── 도메인
└── Prefix
필요에 따라 error
내 message
는 상세한 에러 메시지를 포함하지 않을 수 있다.(구체적인 에러 메시지 은닉 필요 시)
{
"success": false,
"error": {
"errorCode": "E00202"
}
}