2010-02-24 5 views
4

고객이 입력란이 선택 사항 인 필드로 모든 업체를 검색하는 데 내 클라이언트가 사용하는 내 RESTful 웹 서비스에서 URL을 만들어야하는 경우 URL의 모습은 어떻습니까?선택적 매개 변수를 사용하여 검색을위한 RESTful URL을 설계하는 방법은 무엇입니까?

비즈니스는 이름만으로 이름, 전화 번호 또는 이름, 전화 번호 및 연락 전자 메일로 검색 할 수 있습니다.

+0

. 유연한 REST의 좋은 예를 보려면 Microsoft의 ADO.NET Data Services를 확인하십시오. – TFD

+0

저는 Java 개발자이고 JBoss RESTEasy를 사용합니다. 제 시나리오를 다루는 데이터 서비스 문서의 특정 부분을 지적 할 수 있다면 좋을 것입니다. –

+0

문서에서 가장 가까운 주소는 다음과 같습니다. http://www.jboss.org:80/file-access/default/members/resteasy/freezone/docs/1.2.GA/userguide/html/_QueryParam.html –

답변

10

Chandru, 속성이있는 엔티티 집합과 같은 모든 비즈니스 목록을 생각해보십시오. URI의 매개 변수를 사용하여 하위 집합을 식별 (선택)하는 URI를 만들 수 있습니다.

일반적으로이 작업은 쿼리 문자열 매개 변수 ('?'다음의 항목)로 수행되지만 매개 변수를 경로 세그먼트 또는 행렬 URI로 지정할 수도 있습니다.

('는 @' 물론 URL 인코딩을해야합니다)

이것은 개념적으로 SQL select 절과 유사합니다.

경로 세그먼트 또는 행렬 매개 변수의 매개 변수는 색인 생성 가능성에 영향을 미칩니다 (예 : 행렬 매개 변수를 사용하면 여러 수준에서 필터링 할 수 있습니다. 왜냐하면 계층 구조는 와드 이후 계속 될 수 있으므로 쿼리 매개 변수로는 사용할 수 없기 때문입니다). 나는 당신이 그것에 관심이 있다면 당신이 다른 질문을하게하는 것이 좋습니다.

예 :

http://foo.org/service/businesses/france/name=acme;city=paris/latest/?contact=xxx

월 당신이 같이 할 이제까지 무엇

+0

RESTy가 아닌 쿼리 문자열을 사용하고 있지 않습니까? –

+6

@Chandru 쿼리 문자열 매개 변수를 사용하는 것이 완벽하게 유효합니다. 찾고있는 리소스는 Jan이 '/foo.org/service/businesses'를 사용하여 식별 한 비즈니스 목록입니다. 해당 목록에 나타나는 비즈니스는 쿼리 매개 변수에 의해 제어됩니다. –

+1

아니요, 전혀 아닙니다. RESTfulness와 관련하여 중요한 것은 매개 변수가 지정되며 클라이언트와 서버 간의 일부 대역 외 (out-of-band) 지식에 의존하지 않는다는 것입니다. 또한 클라이언트는 매개 변수를 '채우는'방법 (예 : 양식 또는 링크 템플리트)을 런타임에 지시해야합니다. 확장 가능한 양식 메커니즘의 예로 http://www.opensearch.org를 살펴보십시오. 그러나 첫 번째 단계에서이 문제에 대해 너무 걱정하지 마십시오. 야후 그룹에 관해서는 나머지 토론을하고 그 주제가 좀더 '자세한 내용'이므로 명확히 해달라고 요청하십시오. –

관련 문제