programing

Rest api - 단일 리소스 필드 업데이트

lovejava 2023. 8. 27. 08:47

Rest api - 단일 리소스 필드 업데이트

드라이버 리소스에 대한 rest endpoint가 있다고 가정해 보겠습니다.나는 이런 PUT 방법이 있습니다.

myapi/drivers/{id}

{body of put method}

운전자를 '활성화' 및 '비활성화'할 수 있는 기능을 추가해야 합니다.

이렇게 엔드포인트를 새로 만드는 것이 좋은 생각입니까?

PUT myapi/drivers/{id}/enable/false

아니면 기존 엔드포인트를 사용하는 것이 더 낫습니까?기존 엔드포인트를 사용할 때 발생하는 한 가지 문제는 드라이버에 많은 필드가 있다는 것입니다(거의 30개). 이러한 모든 필드를 '활성화' 또는 '비활성화' 드라이버만 업데이트하기 위해 전송하는 것은 과도한 작업입니다.

당신은 어떻게 생각하나요?

이것이 바로 HTTP 방법입니다.PATCH에 적합합니다.리소스에 많은 필드가 있지만 몇 개만 업데이트하려는 경우에 사용됩니다.

와 마찬가지로PUT다음으로 요청을 보냅니다.myapi/drivers/{id}그러나 과는 달리PUT요청 본문에서 변경할 필드만 보냅니다.

엔드포인트 생성(예:myapi/drivers/{id}/enable"enable"은 리소스 자체를 호출할 수 없기 때문에 RESTful이 아닙니다.

스프링의 구현 예PATCH엔드포인트, 이 링크를 참조하십시오.

PATCH Http 메서드를 사용하여 하나의 필드 업데이트

PATCH myapi/drivers/{id}/enable

언급URL : https://stackoverflow.com/questions/47921841/rest-api-update-single-field-of-resource