Designing a Beautiful REST+JSON API

2012-08-04

원문 링크 설명이 잘 되어 있는 영상. 개인적으로 포인트를 좀 잡아본다. 에러 HTTP 에러 코드를 넣고, 다른 설명이 필요. 가능한 많이. ID는 순차를 피하고 숨길 것. UUID 같은 걸 쓰라. 캐시 - ETag 가능하면 세션 사용을 피할 것. 기본적으로 객체가 콜렉션이나 하위 객체를 포함하면, 그걸 다 뿌려주지 말고, 하위객체나 콜렉션에 대한 링크를 제공 파라마터를 이용해서 객체를 다 뿌릴지 말지를 결정. GET /object?expand=true 파라마터를 이용해서 필터링과 페이지구분. offset, limit사용. 페이지 제공하는 경우 next, prev 링크 제공 다대다 관계의 경우, 조인된 한 행을 하나의 객체로 보고 필요에 따라 필터링 MEDIA TYPE 포맷+파싱룰 request - Accept header respons - content-type header media type에 변수 넣기 application/foo+json;bar=baz ISO 8601 UTC를 쓰라 POST vs PUT POST는 멱등아님 - 전체 대체 PUT은 멱등 - 업데이트 or 전체 대체 app/collection/instance POST로 전체 대체를 하는 경우, 부모 자원에다가 요청을 보내면 된다. POST /app/collection -> 결과는 201 created. 생성된 주소를 location에 담아서 보내준다.

8월 첫째 주 정리 space dog