2014-07-24 6 views
0

POST 메서드를 사용하여 리소스를 만들기위한 REST API를 디자인하고 있습니다. 이 작성 호출은 필수이지만 서로 논리적으로 관련이없는 4 개의 매개 변수를 허용합니다. 그래서 나는 이러한 4 개의 입력 매개 변수를 받아들이는 두 가지 옵션이 있습니다 - JSON 객체로 요청REST API - POST 유형의 메소드에서 매개 변수를 전달하는 가장 좋은 옵션은 무엇입니까?

  1. 파트를
    OR (POST/API/someresource PARAM1 = 값 1 & 같은 쿼리 매개 변수의 형태로
  2. ? param2 = value2)

어떤 옵션이 가장 적합합니까?

사실에 기초 두 가지 방법 위의 중 하나를 선택하도록 제안 어떤 지침이 있습니까 -이 그래서 우리는 쿼리 매개 변수를 사용하지 않아야 필수 매개 변수임을

  1. ?
  2. 이들은 논리적으로 관련이 없으며 리소스를 생성하기위한 입력입니다. 쿼리 매개 변수를 사용할 수 있습니까?

답변

0

/api/someresource?param1=value1&param2=value2GET 요청 일 가능성이 높으며 POST 요청이 아닙니다. 요청에 따라 서버의 상태가 변경된 경우 POST을 사용하십시오. 유일한 읽기 작업 인 경우 GET을 사용하십시오.

+0

대회를 제안하거나 더 많은 것이 있습니까? – PST

+0

짧은 답변, 둘 다 :) API를보다 명확하고 이해하기 쉽게 만들지 만, 동일한 끝점을 두 개 이상의 메서드에 연결할 수있는 경우가있을 수 있습니다.)/api/example은 POST, GET, PUT, DELETE와 다르게 반응 할 수 있습니다. 따라서 항목을 삭제하려면/api/deleteItem과 같은 다른 끝 점이 필요하지 않습니다./api/item을 사용하고 DELETE 요청이있을 때 항목을 제거 할 수 있습니다. – user3811473

+0

예 저는 기존 접근 방식에 동의합니다. 이 네 개의 입력 매개 변수는 논리적으로 관련이 없기 때문에 하나의 입력 개체 아래에서 결합하고 서버 측에서이를 받아들이지 않습니다. – PST