2011-09-01 3 views
4

데이터 또는 여러 개체의 범위를 지정합니다 :방법 아래 컬 요청과 같이 URL이 구성되어 편안한 웹 서비스에서 사용자의 인스턴스에 액세스하려면 편안한 웹 서비스

컬 - -X GET -s "$ BASE_URL/User/$ {customer_id} .json"

모든 사용자 엔터티 또는 페이지를 사용자 엔터티 범위 (예 : 데이터베이스의 처음 50 명의 사용자) REST와 호환되도록 내 요청을 구조화하는 방법은 무엇입니까 ???

답변

12

URI에서 문자의 의미를 덜 강조하려는 시도부터 시작해야합니다. 멋지고 읽기 쉬운 URI는 좋은 것이지만, REST와는 아무런 관련이 없습니다. 실제로 모든 URI를 의미없는 문자열로 변경하여 RESTful 인터페이스의 디자인을 판단하고 나중에 예쁜 것을 추가하는 것이 좋습니다. 서버는 이후에 서버를 변경할 수없는 간단한 이유 때문에 서버의 URI 구조에 대해 전혀 알지 못한다.

다음으로 고객 목록이 의미있는 개념이라면 꼭 자신의 권리로 전환해야합니다. 이 표현에는 각 개별 고객에 대한 정보와 각 고객 리소스에 대한 링크가 포함될 수 있습니다.

페이징? 좋은 아이디어 - 각 페이지를 자체 리소스로 변환하고 함께 연결하십시오. Google이 힌트를 위해 검색 결과를 표시하는 방식을 살펴보십시오.

종종 클라이언트가 페이지 크기를 지정할 필요가 없기 때문에 그게 전부입니다. 그렇다면 기본적으로 다음 두 가지 옵션을 사용할 수 있습니다. 제출할 때 직접 또는 간접적으로 리디렉션을 통해 적절한 URI로 이동하는 매개 변수를 지정할 수있는 양식을 캡슐화하는 리소스를 가질 수 있습니다. 또는 가난한 사람의 양식 인 URI 템플릿을 포함시킬 수 있습니다.

어쨌든 첫 번째 요점을 반복하십시오. URI 구축 규칙 집합으로 나타나는 API로 RESTful 인터페이스를 보지 마십시오. 대신 자원, 표현 및 하이퍼 미디어를 생각해보십시오.

+0

사람들은 페이징을 위해 HTTP Range 헤더 (일반적인 바이트 대신 항목 이상)를 사용하는 것을 보았습니다.하지만 메커니즘의 발견 가능성에 대해 걱정합니다. –

관련 문제