REST API를 개발할 때 CRUD중 create, read, delete의 dto 설계는 비교적 간단하나 update는 다양한 방법이 가능하기 때문에 고민되는 부분입니다. 이 때 사용할 수 있는 JSON Patch를 소개합니다.
JSON Patch
JSON Patch는 json의 수정을 표현합니다. 따라서 REST API 설계시 PATCH 메소드와 함께 사용하면 update 기능을 구현할 수 있습니다.
예제
JSON Document
{
"a": "a",
"b": "b"
}
JSON Patch
[
{ "op": "add", "path": "/c", "value": "c" },
{ "op": "remove", "path": "/a" }
]
결과
{
"b": "b",
"c": "c"
}
지원하는 Operation
Add
{ "op": "add", "path": "/c", "value": "c" }
배열에서 마지막에 삽입하고 싶다면 -을 사용하면 됩니다.
Remove
{ "op": "remove", "path": "/a" }
Replace
{ "op": "replace", "path": "/a", "value": "c" }
Copy
{ "op": "copy", "from": "/a", "path": "/d" }
Move
{ "op": "move", "from": "/a", "path": "/d" }
Test
{ "op": "test", "path": "/a", "value": "a" }
만약 같지 않다면 JSON Patch는 유효하지 않는것으로 처리됩니다.
'Tech & Product > AI, 더 깊게' 카테고리의 다른 글
RA:X 담당 개발자가 소개하는: 인피니밴드(Infiniband) (2) | 2024.01.31 |
---|---|
주식회사 텐, Coaster Auth 오픈소스 공개 (0) | 2022.05.20 |
Docker의 등장 배경과 구조 (0) | 2022.03.15 |
GPU의 효율을 극대화 하는 솔루션 - Coaster (0) | 2022.03.04 |
글로벌 MLOps 및 ML 도구 분야의 플레이어들 2/2 (0) | 2022.02.23 |