API 서비스를 만드는 데
REST API 를 처음 만들다 보니 API 응답코드 가 남들은 어떻게 사용하는 지 궁금해졌다
그래서 3개사의 OPEN API 를 벤치마킹 해봤다
카카오 OPEN API
카카오 개발가이드 : https://developers.kakao.com/docs/restapi/quick-reference#%EC%9D%91%EB%8B%B5-%EC%BD%94%EB%93%9C
HTTP 상태코드 와 JSON 내에 음수로 에러코드를 제공해준다
상태코드는
- 정상 : 200
- 사용자오류 : 400대
- 시스템오류 : 500대
NHN OPEN API
NHN TOAST Meetup REST API 참고글 : https://meetup.toast.com/posts/92
상태코드는
- 정상 : 200
- 사용자오류 : 400대
- 시스템오류 : 500대
상태코드 표시에 작성자의 의견이 들어있음 (403 은 보안에 안좋으니 404로 대체해라, 등록은 201 을 써라 등)
네이버 OPEN API
네이버 개발자센터 오류코드 : https://developers.naver.com/docs/common/openapiguide/errorcode.md
응답코드는
- 사용자오류 : 400대
- 시스템오류 : 500대
오류코드에 대해서 오류메시지를 보내는 방식을 취하고 있습니다
{
"errorMessage": "Authentication failed (인증에 실패하였습니다.)",
"errorCode": "024"
}
조합결과
HTTP 상태코드는 크게 3가지 종류로 정의하고
- 정상 : 200
- 사용자오류 : 400대
- 시스템오류 : 500대
400, 500대 에러 발생시에 사용자들이 알 수 있도록
에러메시지와 에러코드를 추가로 보내줘야 한다
if (typeof custid !== 'string') {
console.error('custid Validation Failed');
return { statusCode: 400, body: JSON.stringify('custid is invalid')};
}
if (flag !== 'Y' && flag !== 'N') {
console.error('flag Validation Failed');
return { statusCode: 400, body: JSON.stringify('flag is invalid')};
}
if (!version) {
console.error('version Validation Failed');
return { statusCode: 400, body: JSON.stringify('version is invalid') };
}
serverless framework + API Gateway + lambda 로 만들면서 이렇게 해놨는데
에러메시지만 주고 에러코드는 전달을 하지 않고 있었다
body 영역을 네이버 같이 변경해야 겠다
{
"errorMessage": "Authentication failed (인증에 실패하였습니다.)",
"errorCode": "024"
}
'IT > Programing Tip' 카테고리의 다른 글
소스코드를 이미지로 만들기 polacode (0) | 2019.08.13 |
---|---|
윈도우 10 싸게 사기 (0) | 2019.08.05 |
사진 배경만 삭제 (무료) (0) | 2019.08.05 |
사이트 이미지 다운받기 (0) | 2019.08.05 |
간단하게 코드 짜고 실행할 때 Hashcode (0) | 2019.08.02 |
VS Code 유용한 플러그인 Project Manger (0) | 2019.07.03 |
웹브라우저 모바일 화면으로 전환하기 (0) | 2019.07.03 |
VSCode 유용한 Plug-in Settings Sync (0) | 2019.07.03 |