REST-엔티티의 모든 속성을 업데이트 할 때 PUT 또는 PATCH

화성 씨

REST API에서 엔터티의 모든 속성을 업데이트하려는 경우 모범 사례 측면에서 사용하는 것이 더 낫습니까? PUT또는 PATCH? 사용하는 것이 더 낫다면 PATCHPUT필요합니까? 둘의 차이점은 무엇입니까?

모든 필드가 업데이트되면 두 작업이 모두 멱 등성입니다. 맞습니까? 그렇다면 차이점은 무엇입니까?

VoiceOfUnreason

PUT멱 등성 PATCH입니다. 멱 등성이 라는 사실 PUT범용 구성 요소가 응답을 생성하는 데 필요한만큼 단일 요청을 반복 할 수 있음을 의미합니다 .

PATCH와 같이 POST멱등 의미론을 약속하지 않습니다. 따라서 범용 구성 요소는 자체적으로 수행 할 수있는 작업 측면에서 더 엄격하게 제한됩니다.

모든 필드가 업데이트되면 두 작업이 모두 멱 등성입니다. 맞습니까?

범용 구성 요소는 모든 필드가 업데이트되었는지 여부를 이해하지 못합니다. 높은 수준의 휴리스틱은 다음과 같습니다. 범용 구성 요소는 HTTP 헤더의 의미를 이해하지만 반드시 메시지 본문의 의미를 이해하지는 않습니다.

그리고이 경우 전체 리소스의 PATCH가 멱 등성이 아닌 이유는 무엇입니까?

실제로 PATCH의 구현은 멱 등성을 가질 수 있습니다. 그러나 반드시 그럴 필요는 없습니다. PATCH 요청의 의미는 멱등 처리를 약속 하지 않으므로 범용 구성 요소가 가정해서는 안됩니다.

도움이 될 수있는 비유 : GET이 안전 하기 때문에 쿼리에 GET을 사용하는 것을 선호 합니다 . 그러나 때로는 다른 것 (사실상 URI 길이 제한과 같은)이 방해가되어 POST를 사용해야합니다. 효과적으로 읽기 전용 인 POST 핸들러를 생성 할 수없는 이유가 전혀 없습니다.

그러나 우리가 가지고 있지 않은 것은이 특별한 POST 사용이 안전하다는 것을 범용 클라이언트에 알릴 수있는 메커니즘입니다.

GET은 안전하다고 정의되어 있으므로 전 세계의 모든 리소스가 안전하게 처리해야합니다. POST는 안전하다고 정의 되지 않았습니다 . 세계의 일부 리소스 만이 POST를 안전하게 처리합니다. 따라서 범용 구성 요소는 특정 리소스가 POST 요청을 안전하게 처리 한다고 가정 할 수 없습니다 .

멱등 의미론과 PUT 대 POST / PATCH도 마찬가지입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

특정 사용자를 위해 모델을 업데이트 할 때 별도의 엔티티 또는 수정 자

분류에서Dev

모든 관련 구성이 "항상 업데이트 가능"으로 설정되어 있는데 ADF 비즈니스 구성 요소 엔티티 속성이 "새로 업데이트 할 때 업데이트 가능"으로 렌더링되는 이유는 무엇입니까?

분류에서Dev

Freebase에있는 모든 엔티티의 이름과 유형을 어떻게 추출 할 수 있습니까?

분류에서Dev

엔티티 프레임 워크 모델을 업데이트 할 때 Visual Studio가 내 클래스를 삭제하는 이유

분류에서Dev

신속하게 엔티티 (핵심 데이터)의 모든 속성을 true로 업데이트

분류에서Dev

Swift Core Data-모든 하위 엔티티의 속성을 업데이트하는 방법은 무엇입니까?

분류에서Dev

Symfony PUT에 매핑 된 모든 엔티티 속성이 포함되지는 않습니다.

분류에서Dev

배치 작업에 엔티티를 저장할 때 Bean의 유효성을 검사하는 방법

분류에서Dev

Datomic의 엔티티 ID 세트가 제공된 모든 엔티티 속성 및 값을 가져옵니다.

분류에서Dev

Graphql Java가 몇 개만 요청할 때 엔티티의 모든 필드를 쿼리하는 이유는 무엇입니까?

분류에서Dev

시간이 dynamics crm의 엔티티 속성과 같아 질 때 로직을 수행 할 수 있습니까?

분류에서Dev

보기 모델이 엔티티 프레임 워크의 모델에서 상속 할 수없는 이유

분류에서Dev

nullable datetimetimeoffset 속성이있는 연결된 엔터티를 쿼리 할 때의 문제

분류에서Dev

Spring-data-rest에서 PATCH 작업에서 업데이트 할 속성을 선택하는 방법은 무엇입니까?

분류에서Dev

REST 모듈을 사용하는 API를 통해 새 엔티티 (ECK로 생성됨)를 생성 할 수 없음

분류에서Dev

부스트 라이브러리를 사용하여 동일한 이름을 가진 모든 노드의 XML 속성 값을 업데이트 할 때 문제

분류에서Dev

Nhibernate가 선택할 때 엔티티 업데이트

분류에서Dev

핵심 데이터 : 관련 엔티티의 속성을 기반으로 엔티티를 가져 오는 방법

분류에서Dev

<엔티티> 검색을 사용한 후 단일 엔터티의 속성에 액세스 할 수없는 이유는 무엇입니까?

분류에서Dev

속성이 동일한 엔티티를 참조 할 때 엔티티를 삭제하는 방법은 무엇입니까?

분류에서Dev

REST API를 통해 송장을 생성 / 업데이트 할 때 TaxZone을 어떻게 지정 (또는 업데이트)합니까?

분류에서Dev

하나의 엔티티로 save를 호출하더라도 Hibernate가 모든 엔티티 인스턴스를 업데이트하는 SPRING JPA

분류에서Dev

엔티티에 데이터베이스보기의 모든 속성에 대한 속성이없는 경우 응용 프로그램이 중단됩니까?

분류에서Dev

Symfony2 : 스키마를 업데이트 할 때 대상 엔티티를 찾을 수 없습니다.

분류에서Dev

엠버에서 데이터 모델의 상태는 "belongsTo"속성을 수정할 때 더티로 설정되지 않습니다.

분류에서Dev

AJAX 바인딩을 사용할 때 생성 / 업데이트 후 IEnumerable 속성이있는 Kendo Grid 모델이 올바르게 업데이트되지 않음

분류에서Dev

jpa에서 엔티티의 모든 필드 업데이트

분류에서Dev

"같은 유형의 다른 엔티티가 이미 동일한 기본 키 값을 가지고 있기 때문에 '모델'유형의 엔티티를 연결하지 못했습니다."라는 예외가 발생하는 이유

분류에서Dev

처음부터 생성하지 않고 기존의 명명 된 엔티티 인식 모델을 "업데이트"하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    특정 사용자를 위해 모델을 업데이트 할 때 별도의 엔티티 또는 수정 자

  2. 2

    모든 관련 구성이 "항상 업데이트 가능"으로 설정되어 있는데 ADF 비즈니스 구성 요소 엔티티 속성이 "새로 업데이트 할 때 업데이트 가능"으로 렌더링되는 이유는 무엇입니까?

  3. 3

    Freebase에있는 모든 엔티티의 이름과 유형을 어떻게 추출 할 수 있습니까?

  4. 4

    엔티티 프레임 워크 모델을 업데이트 할 때 Visual Studio가 내 클래스를 삭제하는 이유

  5. 5

    신속하게 엔티티 (핵심 데이터)의 모든 속성을 true로 업데이트

  6. 6

    Swift Core Data-모든 하위 엔티티의 속성을 업데이트하는 방법은 무엇입니까?

  7. 7

    Symfony PUT에 매핑 된 모든 엔티티 속성이 포함되지는 않습니다.

  8. 8

    배치 작업에 엔티티를 저장할 때 Bean의 유효성을 검사하는 방법

  9. 9

    Datomic의 엔티티 ID 세트가 제공된 모든 엔티티 속성 및 값을 가져옵니다.

  10. 10

    Graphql Java가 몇 개만 요청할 때 엔티티의 모든 필드를 쿼리하는 이유는 무엇입니까?

  11. 11

    시간이 dynamics crm의 엔티티 속성과 같아 질 때 로직을 수행 할 수 있습니까?

  12. 12

    보기 모델이 엔티티 프레임 워크의 모델에서 상속 할 수없는 이유

  13. 13

    nullable datetimetimeoffset 속성이있는 연결된 엔터티를 쿼리 할 때의 문제

  14. 14

    Spring-data-rest에서 PATCH 작업에서 업데이트 할 속성을 선택하는 방법은 무엇입니까?

  15. 15

    REST 모듈을 사용하는 API를 통해 새 엔티티 (ECK로 생성됨)를 생성 할 수 없음

  16. 16

    부스트 라이브러리를 사용하여 동일한 이름을 가진 모든 노드의 XML 속성 값을 업데이트 할 때 문제

  17. 17

    Nhibernate가 선택할 때 엔티티 업데이트

  18. 18

    핵심 데이터 : 관련 엔티티의 속성을 기반으로 엔티티를 가져 오는 방법

  19. 19

    <엔티티> 검색을 사용한 후 단일 엔터티의 속성에 액세스 할 수없는 이유는 무엇입니까?

  20. 20

    속성이 동일한 엔티티를 참조 할 때 엔티티를 삭제하는 방법은 무엇입니까?

  21. 21

    REST API를 통해 송장을 생성 / 업데이트 할 때 TaxZone을 어떻게 지정 (또는 업데이트)합니까?

  22. 22

    하나의 엔티티로 save를 호출하더라도 Hibernate가 모든 엔티티 인스턴스를 업데이트하는 SPRING JPA

  23. 23

    엔티티에 데이터베이스보기의 모든 속성에 대한 속성이없는 경우 응용 프로그램이 중단됩니까?

  24. 24

    Symfony2 : 스키마를 업데이트 할 때 대상 엔티티를 찾을 수 없습니다.

  25. 25

    엠버에서 데이터 모델의 상태는 "belongsTo"속성을 수정할 때 더티로 설정되지 않습니다.

  26. 26

    AJAX 바인딩을 사용할 때 생성 / 업데이트 후 IEnumerable 속성이있는 Kendo Grid 모델이 올바르게 업데이트되지 않음

  27. 27

    jpa에서 엔티티의 모든 필드 업데이트

  28. 28

    "같은 유형의 다른 엔티티가 이미 동일한 기본 키 값을 가지고 있기 때문에 '모델'유형의 엔티티를 연결하지 못했습니다."라는 예외가 발생하는 이유

  29. 29

    처음부터 생성하지 않고 기존의 명명 된 엔티티 인식 모델을 "업데이트"하는 방법은 무엇입니까?

뜨겁다태그

보관