2014-04-02 4 views
0

'정적 컬렉션'이 REST에서 괜찮은지 알고 싶습니다. AFAIK, 유일한 허용 정적 컬렉션 (전 특정 개체에 대한 GET 오지 않는다 컬렉션 GET) 즉, 다음의 예 '책'에서RESTful API 정적 컬렉션

루트 것은 정적 모음입니다하지만 루트에있다 :
GET : API/책/# 책 수집
GET : API/책/book_id 번호 특정 책 데이터
GET :
특정 에 대한 API/책/book_id/available_in_stores # 저장 컬렉션 다음은 편안하고 standarts에 따라 괜찮이다 :
GET : api/books/book_type
가져 오기 : api/books/book_types/book_type1
여기 'book_types'는 모음이지만 정적이며 루트에있을 수도 있습니다. 논리적으로는 책 밑에 있습니다.

이유는 내가 루트에 과부하를 걸지 않기 때문입니다.

미리 감사드립니다.

+0

루트가 아닌 URL에서 "정적 콜렉션"이 유실되지 않은 곳을 지정할 수 있습니까? –

답변

1

예를 들어 api/ 비트를 이미 사용 했으므로 URL에 버전 또는 기본 경로를 추가하려는 경우에만 이에 대한 un-RESTful 기능이 없습니까? HTTP의 관점에서 URL 구조는 완전히 부적절합니다.

그러나 캐싱 이유로 당신은 당신이 암시 적으로 같은 일의 인스턴스를 만들 것 때문에하지 에, api/books/<book_id>/book_types 아래의 예에서, 모든 개별 도서에 정적 자원을 복제 확인해야합니다.

+0

답장을 보내 주셔서 감사합니다 :) sth에 대한 참고 자료에 대해 알고 있습니까? 'un-RESTful'이 아닙니다. –

+0

@ gilad.chap 이해하고 적용하는 가장 중요한 개념은 "안전하고 멱등하지 않은 방법"입니다 (http : //www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.1) "을 참조하십시오. –

+0

좋은 URI 디자인은 이러한 개념과 URI (자원 일 수있는 식별자)의 정의의 결과 일뿐입니다. 엄지 손가락의 간단한 규칙은 "전자 메일로 URI를 보낼 수 있습니까? 식별 무엇입니까? 그것을 나타내는 방법이 있습니까?" –