2017-10-23 2 views
0

나는 리소스에서 수행 된 작업의 표시기로 REST의 메서드를 사용하는 것이 가장 좋습니다. 내가 5 가지 연산을 가지고 있다고 가정합니다. 아래 리소스와 메서드를 사용하고 있습니다.rest 데이터 동사에 대한 Http 동사 모범 사례

Resource /customer- POST- CreateCustomer 
DELETE-delete customer 
PUT-update customer 

이제 더 많은 쿼리 작업이 두 개 있습니다. findCustomerqueryCustomer입니다. 하나의 GET 메서드 만 사용할 수 있습니다. 예외적 인 1 개의 연산자를 식별하기 위해 명시적인 HTTP 헤더 나 추가 쿼리 문자열을 전달하는 것이 좋은 대안으로 보이므로 이러한 시나리오를 처리하는 가장 좋은 방법은 무엇입니까!

+0

차이점은 무엇입니까? findCustomer 및 queryCustomer는 무엇입니까? – JRR

+0

기능은 findCustomer와 비슷합니다. 여러 고객이 반환 될 수있는 모바일/이메일입니다. queryCustomer 입력은 특정 고객 ID의 세부 정보에만 응답합니다. –

답변

0

나는 더 많은 쿼리 연산 : findCustomerqueryCustomer가 있습니다. 그 중 하나만 GET 메서드를 사용할 수 있습니다.

GET 방법은 두 가지 작업에 모두 적합하지만 다른 URI를 사용해야합니다.

GET /customers 

소장품은 쿼리를 필터링 할 수 있습니다 매개 변수 :

은 (당신이 쿼리로 정의하는 작업) 고객의 컬렉션의 표현을 검색하려면 다음을 사용합니다.

그리고 단일 고객 (을 찾을 당신이 정의하는 작업)의 표현을 검색하기 위해 다음을 사용

GET /customers/{id} 

{id}은 고객의 고유 한 식별자입니다.


관련 : 상태 코드는 각각의 상황에서 반환 할 수있는 통찰력이 answer를 참조하십시오.

+0

/customers/{id}를 사용하면 ID가 경로가됩니다. (리소스) 매개 변수와 모든 HTTP 동사에 적용 할 수 있을까요? –

+0

@darshankamat 구현에 따라 다릅니다. 대부분의 프레임 워크에서는 주어진 엔드 포인트에서 처리 할 수있는 메소드를 정의 할 수 있습니다. –