2011-09-09 6 views
0

우리는 명단을 반환하는 RESTFul 웹 서비스를 가지고 있습니다.어떤 상황에서 클라이언트를보다 정확한 URI로 리디렉션해야합니까?

/사람/목록

그러나 사업은 "활성"사람을 반환하고자합니다. 즉 2009 년 이후에 만들어진 사람.

자원을보다 정확하게 표현하기 때문에 (307?)/person/list를/person/list? createdAfter = 2009로 리디렉션하도록 제안하고 있습니다. 그것은 의미가 있습니까? 그렇지 않다면 왜 안 되겠습니까?

답변

1

제 생각에는 URL/person/list는 필터링되지 않은 목록을 반환해야합니다. 필터링 된 목록을 가져 오려면 createAfter = 2009를 명시 적으로 지정해야합니다.

나는 길을 생각하면서 이것을 말한다. 실제로 모든 사용자를 원하는 응용 프로그램을 가지고 있다면 어떨까요?/person/list에 따라 여러 코드가 있고 마술처럼 필터링 된 버전으로 리디렉션되는 경우 어떤 이유로 URL/사람/목록을 실제로 필터링되지 않은 버전으로 변경해야합니까? 그러면 모든 사용자를 끌어들일 것이기 때문에 이전 코드가 파기되었습니다.

두 가지 접근 방식 중 하나를 선택했습니다.

1) 리디렉션하지 마십시오./person/list에 활동중인 사람 만 암시 적으로 암시하십시오. 이 상황에서 비 활동성을 얻으려면 실제로/person/list? all 또는/person/list? includingInactive 또는 something을 요청해야합니다. (요점을 알기를 바랍니다 - 명시 적으로 비활성화 된 것을 요청해야합니다)

2) 실제로 응용 프로그램에서? createAfter = 2009와 함께 URL을 사용하십시오.

나는 아마도 첫 번째 옵션으로 갈 것입니다. 이 기능을 사용하면 활동중인 사람의 논리를 응용 프로그램 대신 웹 서비스에 보관할 수 있으며 URL의 의미가 변경되지 않습니다 (단지/사람/목록은 목록 만 이해할 수 있음을 의미 함) 활동적인 사람).

1

/person/list/active를 사용하는 것이 잘못된 이유는 무엇입니까? 액티브가 2009 년 이후에 생성되지만 정의가 변경 될 수 있음을 알고 있습니다.

관련 문제