고객이 공개 회사를 조회 할 수있는/회사 리소스가 있고 고객이 티커, 위치 및 위치 및 업계별로 회사를 조회 할 수 있기를 원한다고 가정 해 보겠습니다.다른 finder "methods"로 REST 리소스를 얻는 방법은 무엇입니까?
양식에 같은 URL을 유지 하시겠습니까?
- GET/회사/MSFT
- GET/회사/미국
- GET/회사/미국 & 소프트웨어
이것은 옳지 않은 것처럼 보입니다. 어떤 아이디어?
고객이 공개 회사를 조회 할 수있는/회사 리소스가 있고 고객이 티커, 위치 및 위치 및 업계별로 회사를 조회 할 수 있기를 원한다고 가정 해 보겠습니다.다른 finder "methods"로 REST 리소스를 얻는 방법은 무엇입니까?
양식에 같은 URL을 유지 하시겠습니까?
이것은 옳지 않은 것처럼 보입니다. 어떤 아이디어?
어때?
GET /Companies?ticker=MSFT
GET /Companies?country=USA
GET /Companies?country=USA&industry=software
중요한 것은 자원을 식별하는 것입니다. 자원은 "회사 목록"입니다. 미디어 유형은 Atom 목록이거나 UL LI 태그를 사용하는 HTML 문서 일 수 있습니다. 쿼리 매개 변수는 목록의 내용에 영향을 주지만 개념적으로는 여전히 "회사 목록"입니다.
당신은 별개의 자원과 같은
GET /Companies/USA
를 만들 수 있지만 필요 정말로./Companies/USA에 POST 하시겠습니까?/Companies/USA를 삭제 하시겠습니까? 응용 프로그램에서 이러한 특정 회사 집합에 대해 추가 작업을 수행 할 필요가없는 경우 이러한 응용 프로그램을 모델링하는 것이 왜 별개의 리소스가 될 수 있습니까?
이 설명의 참고 자료로, 단일 엔티티 인 자원에 액세스 할 때보다 명확하게 구분하고 싶습니다. 즉
GET /Companies/USA
GET /Company/MSFT
나는이 인기있는 웹 프레임 워크의 일부는 작동 방법이 아니다 실현,하지만 난 그것을 유용 차이를 발견했다.
그 중 하나를 수락 할 수 있지만 표준 주소 (아마도 GET/companies/msft)를 가리키는 Location : 헤더를 반환 할 수 있습니다.
후자의 두 쿼리는 여러 회사를 반환합니다. –
당신은 하나의 회사 만 가지고 있지만 여러 방법으로 접근 할 수 있습니다. 따라서/companies/[고유 이름]을 정의한 다음/companies/byticker/msft 및/companies/bylocation/미국 등
그건 아주 RESTful 접근 방식 아니에요. – workmad3
@ workmad3 해당 구문을 사용할 경우 어떤 REST 제약 조건을 위반했는지 설명해야합니다. 우리는 * WAY *라는 문구가 너무 실용적이지 않고 "RESTful"이 아니라는 것을 많이 보았습니다. –
리소스가 고유 한 이름을 가져야하므로 RESTful하지 않습니다. "같은 것을 반환하는 여러 쿼리가있는 경우 리소스 자체가 아닌 가져올 수있는 리소스의 고유 한 이름을 반환해야합니다. 고유 한 이름을 갖는 것은 REST 아키텍처에서 캐시 일관성에 중요합니다. 하나의 이름, 하나의 캐시 정책, 그것을 가져 오는 하나의 "장소"등을 변경하십시오. –
회사 수준에서 작업을 수행하고자합니다. 즉 :/companies/msft –
내 업데이트를 참조하십시오. 나는 url/Companies/msft가 오도 된 것을 발견했다. 증권 시세 표시기가있는 회사 목록을 반환합니까? 또는 회사 리소스의 표현을 반환합니까? 그것은 어쨌든 나의 선호입니다. URL 명명은 객체 지향 프로그래밍에 대한 클래스 이름 지정과 마찬가지로 REST만큼 중요합니다. –
알았습니다. 나는 동의한다. –