Foo 용 REST 리소스를 갖고 싶습니다. POST를 수행하여 새로운 Foo를 만들 수 있기를 원합니다.이 REST URI를 구성하는 올바른 방법은 무엇입니까?
Foz는 Fizz와 Buzz 만있을 수 있습니다 (모델은 FooFizz 및 FooBuzz가 백엔드에 있고 두 가지 모두 Foo를 확장합니다). 모든 Foz는 Fizz 또는 Buzz입니다. 다른 모델의 대부분은이 패턴을 따릅니다 (Fizz 및 Buzz의 하위 유형과 함께 일반). 단기 및 중기에는 Foos에 새로운 유형이 추가되지 않습니다. 장기적으로는 새로운 유형이 추가되기 전에이 애플리케이션이 더 이상 사용되지 않을 가능성이 있지만 가능성은 존재합니다.
어쨌든 다음은 Foos를 사용하기 위해 생각해 낸 URI 스키마입니다.
POST/foo에? TYPE =
POST/foo에/소다
POST/소다/foo에
POST/foo에-소다
POST 소다/foo/{foo-id}/fizz
내 생각 :
(1)은 쿼리 문자열이 올바르게 구성되어 있기 때문에 불필요한 클라이언트 - 서버 커플 링 일 수 있습니다. 그러나 그것은 나에게 가장 이해하기 쉽습니다.
(2) 및 (3)은 개별 Foo에서 작업을 수행하기 위해 URI go/foo/{foo-id}를 보유 할 수 있기 때문에 바람직하지 않습니다.
(4) Fizzes을 필요로하고
이(5) 괜찮은 제도처럼 보인다 URI 나무의 완전히 분리 된 지점이 될 버즈가 엉망 URI 트리를 수도 있지만.
당신이 옳다고 생각합니다. 정보 전송을 위해 URI에 너무 많이 의존했을 수도 있습니다. – smcg
질의 매개 변수를 POST와 혼합하는 것을 좋아하지 않습니다. 내가 그것을 볼 때마다, 나는 잘못된 디자인이 있다고 의심한다. :-) –