2017-03-20 4 views
1

나와 응용 프로그램간에 데이터 흐름과 관련없는 서비스를 사용해야하는 경우 가장 적합한 호출 유형은 무엇입니까? (GET 대 POST vs PATCH 대 PUT) 호출하려고하는 서비스에 대해?데이터 흐름이 관련되지 않으면 REST 서비스 유형?

그러나 백엔드는 데이터 저장소의 백엔드 데이터에 몇 가지 수정을 수행하고 다른 백엔드에는이를 POST합니다. 그러나 이것은 내가 서비스를 호출 할 때 바라 보는 추상 수준이 아닙니다. 나는 단지 "프로세스"가 끝나기를 바란다. 그리고 백엔드 서비스가 어떻게 그것이 물질적이지 않은가를 원한다.

이 컨텍스트에서 어떻게 소비하려고하는 "서비스"를 나타낼 수 있습니까? 서비스를받는대로 "GET"서비스입니까? 이 동사는 모두 데이터 중심적이며 프로세스 중심이 아니기 때문에 매우 혼란 스럽습니다.

답변

0

서버가 백엔드의 데이터에서 일부 조작을 수행하므로 PATCH을 사용해야하며 서비스는 코드 204 No Content과 함께 반환되어야한다고 생각합니다.

PUT 또는 PATCH 중 하나를 사용해야합니다. 그러나 차이점은 무엇입니까?

PUT 및 PATCH 요청의 차이는 서버가 Request-URI로 식별되는 자원을 수정하기 위해 동봉 된 엔터티를 처리하는 방식에 반영됩니다. PUT 요청에서 엔티티는 원본 서버에 저장된 자원의 수정 된 버전으로 간주되며 클라이언트는 저장된 버전을 교체하도록 요청합니다.

그러나 PATCH에서는 동봉 된 엔터티에 현재 원본 서버에있는 리소스를 수정하여 새 버전을 생성하는 방법을 설명하는 지침 집합이 포함되어 있습니다. PATCH 메소드는 Request-URI에 의해 식별 된 자원에 영향을 미치며, 다른 자원에도 부작용이있을 수있다. 즉, PATCH의 애플리케이션에 의해 새로운 자원이 생성되거나 기존 자원이 수정 될 수있다.

그래서 저는 PATCH이 귀하의 사례에 더 적합 할 것이라고 생각합니다.

+0

감사합니다. @Dave Ranjan. 이것은 우리의 이해와 모순됩니다. 나는 너의 대답을 받아 들인다. – Ace

+0

감사합니다 @ GoldSugar :) –

0

REST- 방법은 거기에서 무슨 일이 일어나고 무엇을 보내 느냐에 따라 다르지 않습니다.

일부 데이터를 요청하는 중입니다. POST는 데이터를 만드는 데 사용되며 PUT은 기존 데이터를 조작하기위한 것입니다.

백엔드에서 무엇이 관련되어 있는지 정말로 모른다면 PUT을 선호 할 것입니다.

http://www.restapitutorial.com/lessons/httpmethods.html

+0

PUT은 데이터를 만들기위한 것입니다. POST는 일반적으로 새 리소스를 생성하는 경우에만 사용해야하지만 클라이언트가 새 URI를 결정할 수 없도록하려는 경우입니다. 생성을 위해 PUT을 사용할 수 있다면, 멱등수이므로 PUT이 더 좋습니다. 그 웹 사이트는 끔찍합니다. – Evert

+0

downvoting 주셔서 감사합니다, 당신은 재미 있었으면 좋겠다 –

+0

헤이 헤닝. 나는 네가 의미심장하다 고 생각하지 않기를 바란다. 내가 잘못된 느낌을받는 ansers에 대해 downvote 버튼을 사용합니다. 나쁜 조언이기 때문에 내가 downvoted. 나는 당신이 질문에 대답하고 연구를 한 노력에 감사하다는 것을 당신이 이해하기를 바랍니다. – Evert

0

당신이 프로세스를 호출하고 정말 어떤 식 으로든 자원의 상태를 transfering되지 않기 때문에, 난 당신이 단순히 REST 서비스를 처리하지 생각 :

여기에 정의를 참조하십시오.

그렇다면 가장 적합한 HTTP 방법은 간단히 POST이라고 생각합니다. PATCHPATCH으로 대상 URI에있는 리소스를 조작하기위한 메시지를 보내야하기 때문에 잘못되었습니다. 이미 말씀 드렸듯이 여기있는 프로세스를 실제로 다루고 있습니다. 즉, 다음을 의미합니다.

  1. URI가 실제로 의미있는 것은 아닙니다.
  2. 리소스를 조작하지 않습니다.
  3. 멱시원을 보장 할 수 없습니다. 여기

은 이것에 관련된 HTTP 명세에서 일부 니펫 :

포스트있어서 요청을 해당 대상 자원 프로세스 자원의 자신 특정 의미론에 따라 요청 안의 표현. 예를 들어, POST는 다음과 같은 함수에 사용됩니다.

o HTML 양식에 입력 된 필드와 같은 데이터 블록을 데이터 처리 프로세스에 제공합니다.