마지막에 /
포함하지 않는다.
_(underbar) 대신 -(dash)를 사용한다.
소문자를 사용한다.
행위(method)는 URL에 포함하지 않는다.
컨트롤 자원을 의미하는 URL은 예외적으로 동사를 허용한다.
<http://api.test.com/posts/duplicate>
보안을 위해서는 GET방식도 되도록 POST방식으로 요청하는게 좋다.
성공 응답은 2XX
로 응답한다.
로그인이 실패되도 200으로주고 status는 FAIL과 에러메세지를 반환한다.
error메세지에는 error코드와 에러메세지두 가지 형식으로 준다.
error코드는 어떤 코드 상태인지 보기 위해서 에러 메세지는 클라이언트가 문구를 작성하지않고 서버에서 바로 보여줄 수 있다면 가장 좋다.
{
status:200
"errors": [
{
"code": "701",
"msg": "아이디 혹은 비밀번호를 확인하세요."
}
]
}
실패 응답은 4XX
로 응답한다.
5XX
은 서버(apache, nginx)가 오류일 때는 서비스 장애임으로 사용은 가능하나 REST API는 에러에 대한 핸들링이 가능해야함으로 사용자에게 나타나지 말 것.
{
"status" : "SUCCESS",
"code": 200,
"message": null,
"page": {
"countPerPage": 10, // 총 페이지
"totalCount": 100, // 총 데이터 갯수
"currentPage": 1//현재 리턴한 페이지 페이지
},
"data": [{
userName:
}]//여러개일 때
"data": {}//하나의 데이터 일때
}