-
http patch method를 이용하여 우아하게 부분 수정하기.IT 2021. 4. 9. 10:15
http patch method를 이용하여 우아하게 부분 수정하기.
PATCH
HTTP PATCH 메소드는 리소스의 부분적인 수정을 할 때에 사용됩니다.
HTTP PUT 메소드는 문서 전체의 완전한 교체만을 허용합니다. 반면 PATCH 메소드는 PUT 메소드와 달리 멱등성을 가지지 않는데, 이는 동일한 patch 요청이 다른 결과를 야기할 수도 있음을 뜻합니다. 하지만 PATCH를 PUT과 같은 방식으로 사용함으로써 멱등성을 가지게 할 수도 있습니다.
PATCH (혹은 PUT)는 다른 리소스에게 부수효과(side-effects)를 일으킬 가능성이 있습니다.
서버가 PATCH를 지원하는지 알 수 있게끔 하기 위해, 서버는 Allow 리스트 혹은 Access-Control-Allow-Methods (en-US) (for CORS) 응답 헤더를 통해 이를 명시할 수 있습니다.
PATCH가 허용되는지 확인할 수 있는 또 다른 (암묵적인)지표로 Accept-Patch (en-US)의 존재 유무를 들 수 있는데, 이를 통해 patch 문서 양식이 서버에 받아 들여졌음을 알 수 있습니다.
https://developer.mozilla.org/ko/docs/Web/HTTP/Methods/PATCH
front request
const params = new JsonPatch();
params.op = ‘replace’;
params.path = '/sequence';
params.value = 1;
this.api.patch<void>(`${this.router.url}/${no}?direction=${direction}`, {params: [params]}).subscribe(_ => {
…
}, this.api.errorHandler.bind(this.api));server
@PatchMapping(value = "/categories/{no}")
@JsonView({JsonViewFrontEnd.class})
public void sequence(@PathVariable("no") Long no, … @RequestBody JsonPatch patch) {
ArticleCategory cate = articleCategoryService.findById(no).orElseThrow(() -> new ErrorMsgException(new Error(MsgCode.E10003)));
cate = cate.applyPatch(patch, ArticleCategory.class);
articleCategoryService.updateSequence(cate, direction);
}감사합니다.
'IT' 카테고리의 다른 글
HTTP완벽가이드 스터디 3, 4장 (0) 2021.04.17 HTTP완벽가이드 스터디 1, 2장 (0) 2021.04.11 spring data jpql 에서 GROUP_CONCAT function 사용하기. (0) 2021.04.08 java frameworks "simple-boot" open source project (자바 프레임워크) (0) 2021.03.07 message.properties → *.json 변환하여 프론트 프로젝트에 넣기. (gradle) (0) 2021.02.09