2013-08-18 4 views
0

매개 변수 집합을 의미하는 URL을 생성해야 할 때, 모든 매개 변수가 의미 적으로 동일한 "레벨"인 경우 URL 내의 구분 기호 사용에 대한 현재 합의점은 무엇입니까? ? 예를 들면 다음과 같습니다.트리플을 매개 변수로 사용하는 REST 리소스

/myresource/thing1,thing2,thing3 
/myresource/thing2,thing1 
/myresource/thing1;thing2;thing3 
/myresource/thing1;thing3 

즉, 여기서 매개 변수는 단일, 쌍 또는 삼중 일 수 있습니다. 그들은 그들이 논리적 트리하지 않기 때문에 임의의 순서로 지정하고, thing2는 thing1의 하위 자원이 아니므로이 같은 일을 뭔가 "잘못된"것으로 보인다 수 있습니다 : 그것은 나무를 의미하기 때문에

/myresources/thing1/thing2/thing3 

이 날 귀찮게 (HTTP 프레임 워크가 겉으로보기에는 틀림없이, 내 견해로는 잘못되어 있음에도 불구하고) 그렇습니다. 또한 쿼리 문자열을 사용하는 것은 검색 작업이 아니기 때문에 적절하지 않습니다. 매우 한정된 공간에서 알려진 트리플입니다. 쿼리하거나 검색 할 것이 없으므로 말할 필요가 없습니다.

다른 옵션은 POST 요청을 제공하고 트리플을 제공하는 부분에 대한 세부 정보를 제공하는 것으로 가정합니다. 이것은 어떤 이유로 따뜻한 솜털 모양을주지는 않습니다.

다른 사람들이 어떻게 처리 했습니까? 구분 기호는 나에게 깨끗해 보이고 자원의 의도 된 의미를 전달하지만 사람들이 다른 관점을 취할 것이라는 것을 알고 있으며 비슷한 유스 케이스를 가진 다른 사람들의 경험을 이해하려고합니다.

+0

이 매개 변수는 무엇입니까? 'thing1 = value1'과 같은 키 - 값 쌍으로 쓸 수 있습니까? –

답변

0

어떤 값이 누락 될 수 있고 값이 임의의 순서로 나타날 수 있으므로 어떤 값이 어떤 매개 변수에 해당하는지 알 수 있습니까?

나는 GET을 위해 또는 POST 용 페이로드에 쿼리 문자열을 사용했을 것이다. 나는 당신의 요구에 대해 정확히 모르겠어요,

+0

그것은 실제로 중요하지 않습니다 - 그것의 순서가없는 트리플 :-) – timothy

0

를 사용하여 쿼리

/path/to/the/resource?key1=value1&key2=value2&key3=value3 

매개 변수 또는 매트릭스는 적절한 예를없이

/path/to/the/resource;key1=value1;key2=value2;key3=value3 
+0

동의 - 이것은 유일한 괜찮은 옵션처럼 보입니다. Matrix 매개 변수는 Tim BL이 "개인보기"로 표시된 문서에만 나타나기 때문에 여전히 공식적인 것은 아닙니다. 선택, 선택! – timothy

0

매개 변수.

그러나 알려진 사실은 모든 HTTP 매개 변수가 여러 값을 가질 수 있다는 것입니다. 그것은 일련의 객체들을 가질 때가는 길입니다 (예를 들어 GoogleMaps static API을보십시오).

/path/to/the/resource?things=thing1&things=thing2&things=thing3 

그러면 단일, 쌍, 삼중 등의 동일한 API를 사용할 수 있습니다.

관련 문제