티스토리 뷰
RESTful API(이하 rest)는 client, server 구조로 client가 서버의 자원을 HTTP를 사용하여 손쉽게 접근할 수 있게 해준다.
URL : Resource
HTTP Method : 자원을 어떻게 사용할 것인가(행동)
Response : 응답
Resource
- 자원은 상위에서 하위로 표현하며 명사형과 하위를 포함하는 자원일 경우 복수형을 사용한다.
- 새로운 버전을 위한 Controller로 Response 분리 또는 Reverse Proxy를 이용하여 서버를 물리적으로 분리
sub domain을 쓸 수 있다면 => GET http://api.fakehost/v1/things
sub domain을 쓸 수 없다면 => GET http://fakehost/api/v1/things
- Method와 Endpoint만 보고도 무엇을 하는 것인지 이해할 수 있어야 한다.
Http Method
- POST = Create
- GET/HEAD = Read
- PUT/PATCH = Update
- DELETE = Delete
Response
- HTTP 결과 코드를 사용한다.
200 - OK - All about success
201 - Created - Resource was created(Location Header)
204 - No Content - Success Response without response body
3xx - - All about redirection
304 - Not Modified - If-Modified-Since 에 대한 응답(Cashe)
400 - Bad Request - All about client error
401 - Unauthorized - Really means UNAUTHENTICATED
403 - Forbidden - Really means UNAUTHORIZED
404 - Not Found
405 - Method Not Allowed
422 - Unprocessable Entity - Validation Error (406 is also acceptable)
500 - Server Error
- Error Response는 최대한 상세하게 표현하는게 좋으며 DEBUG 모드일 경우 Stack Trace등 디버그 정보도 출력하면 편리하다.
(code, message, 에러 설명 위치 등)
'IT > Network' 카테고리의 다른 글
HTTPS (0) | 2017.03.28 |
---|---|
TCP keepalive (0) | 2017.02.24 |