2. Atom
◦ 데이터 포멧의 규칙(피드, 엔트리)
AtomPub
◦ Atom을 이용한 리소스 편집 프로토콜의 규정
◦ Atom의 CRUD를 위한 프로토콜
3. REST
◦ 분산 네트워크 시스템의 아키텍쳐 스타일
◦ 설계 실력차에 따른 기능제공 여부
◦ REST의 이해도가 높아야 함
AtomPub
◦ 프로토콜 스펙
◦ REST 스타일에 기초
Resource Model 및 Link 기능을 제공
설계의 부분이 줄어듬
Framework 및 Library 제공.
14. Request
◦ PUT /media/Good_To_See_U.jpg HTTP/1.1
◦ Host: blog.example.com
◦ Content-Type: image/jpeg
◦ Authorization: Basic dXNIcjpwYXNz
Response
◦ HTTP/1.1 200 OK
Delete 및 GET 동일함.
15. 여러 컬렉션 리소스의 메타 정보를 저장 및 기술한 문서
◦ 컬렉션 리소스
유저 정보, 미디어 정보
Feed
Entry 등
16. Request
◦ GET /atomsvc HTTP/1.1
◦ Host: blog.example.com
Response
◦ HTTP/1.1 200 OK
◦ Content-Type: application/atomsvc+xml
◦ <service ….>
<workspace>
<atom:title>마이 블로그</atom:title>
<collection href=“http://blog.example.com/feed”>
<categories fixed=“no”>
<atom:category term=“일상”/>
<atom:category term=“기술”/>
</categories>
<accept>application/atom+xml; type=entry</accept>
</collection>
<collection href=“http://blog.example.com/media”>
<atom:title>이미지</atom:title>
<accept>image/png</accept>
<accept>image/jpeg</accept>
<accept>image/gif</accept>
</collection>
</workspace>
◦ </service>
서비스 문서
332 Page
응답 참고
반드시 하나이상
존재 함
Workspace는 0개 이상의
Collection을 가짐
334 Page
<Collection>요소 참고
Media 컬렉션에서
받을 수 있는
Media Type들.
생략 시 기본
accept
Feed 컬렉션에서
사용 가능한 Category.
Fixed가 yes 일 때,
그 외의 카테고리는 사용
불가능하다.
19. 카테고리의 추가에 관해서는 스펙이 없음.
일반적으로 블로그의 Tag와 유사함.
Fixed가 no 이고 카테고리의 추가가 필요하다면
서버에서 해당 부분을 구현해야 함.
반대로 fixed 가 yes 일 때에는 AtomPub와 다른
인터페이스로 카테고리 정보를 편집할 수 있게 해
야 함.
20. AtomPub : Atom 리소스를 CRUD 하는 Web API를 위한
프로토콜
Google은 AtomPub을 베이스로한 Gdata를 사용해 블로그,
캘린터, 스프레드시트, 앨범등을 편집할 수 있는 Web API
제공
Good
◦ 블로그 서비스의 API
◦ 검색 기능을 가진 데이터베이스의 API
◦ 멀티미디어 파일의 Repository의 API
◦ 태그(Tag)를 사용한 소셜 서비스의 API
Bad
◦ Comet을 이용하는 실시간성이 중요한 API
◦ 영상의 스트림 전송 등 HTTP 이외의 프로토콜을 필요로 하는 API
◦ 데이터의 계층 구조가 중요한 API
◦ Atom 포멧이 제공하는 메타 데이터가 불필요한 API