PUT vs PATCH&PUT vs POST
소개하다.
최근의 인터뷰에서 나는
PUT
과PATCH
사이의 차이를 설명해 달라는 요청을 받았다."아, 그래, 이것은 흔히 볼 수 있는 면접 문제야!"라고 생각할 수도 있다.그런데 그거 아세요? 흔하다고 생각하지만, 저는 사실 이 질문에 어떻게 대답해야 할지 몰라요(네, 거절당했어요.하하)🥲). 지금 저는 교훈을 얻었습니다. 저는 글을 한 편 쓰기로 했습니다. 자신의 이해를 돕기 위해서일 뿐만 아니라 당신(다음)의 인터뷰를 준비하는 사람들을 위해서이기도 합니다!당신의feed나 구글을 통해 이 글을 찾으신 분들께 환영합니다!이 글에서, 나는 반드시 너의 면접에 직접적인 답안을 제공할 것은 아니지만, 나는 그것이 충분히 전면적이고, 네가 면접 준비를 하는 데 도움이 되기를 바란다.또한, 나는 어떤 새로운 자료/발견/견해를 제공하지 않지만, 이것은 더욱 철저한 비망이라고 고려해 주십시오!
본고에서 저는 당신이 REST에서 HTTP 방법의 기본 지식을 이해했다고 가정하지만 차이를 깊이 있게 연구하기 전에 간단한 회고를 하겠습니다.
게시, 배치 및 패치
POST란?
Create
인치CRUD
201 (CREATED)
를 반환하고 링크가 있는 위치 헤드https://www.example.com/recipes/1
를 반환합니다.POST
요청을 호출하면 두 개의 서로 다른 자원이 같은 정보를 포함하게 된다const axios = require('axios')
axios.post('https:sample-endpoint.com/user', {
Name: 'Fred',
Age: '23'
})
.then(function (response) {
console.log(response);
})
뭘 넣지?
Update
인치CRUD
200 (OK)
, 업데이트가 없으면 204 (No Content)
로 돌아갑니다.성공적으로 생성되면 HTTP 상태 코드201 (CREATED)
가 반환됩니다.const article = { title: 'React PUT Request Example' };
axios.put('https://reqres.in/api/articles/1', article)
.then(response => this.setState({ updatedAt: response.data.updatedAt }));
패치란?
Update
inCRUD
200 (OK)
, 업데이트가 없으면 204 (No Content)
로 돌아갑니다.const res = await axios.patch('https://httpbin.org/patch', 'hello=world');
res.data.headers['Content-Type']; // application/x-www-form-urlencoded
res.data.json; // { hello: 'world' }
자, 이제 차이점을 이야기해 봅시다.배달하다
1. 작성 및/또는 업데이트?
가장 뚜렷한 차이점은
PUT
는 자원을 창설하고 수정할 수 있지만 POST
는 자원을 창설할 수 밖에 없다는 것이다.PUT
의 경우 이미 존재하는 리소스를 참조하도록 URI를 요청하면 업데이트 작업이 발생하고, 그렇지 않으면 유효한 리소스 URI를 요청하면 새 리소스가 생성됩니다.URI 담당자 요청:
The request URI is the uniform resource identifier of the resource to which the request applies. While URIs can theoretically refer to either uniform resource locators (URLs) or uniform resource names (URNs), at the present time a URI is almost always an HTTP URL that follows the standard syntax rules of Web URLs.
자세한 내용here
요청 구문은 다음과 같습니다.
PUT /users/{user-id}
POST
의 경우 소스 서버는 URI ID를 요청하는 리소스의 새 종속으로 요청을 승인합니다.요청 구문은 다음과 같습니다.
POST /users
2.멱
PUT
방법은 멱이다.다시 말하면 요청을 여러 번 보내면 수정을 요청하는 것과 같다.그러나
POST
방법은 멱이 아니다.요청을 여러 번 보내려고 하면 서버에 여러 개의 URI 리소스가 있습니다.3. 실천 중
일반적으로
PUT
방법은 UPDATE
조작에 사용되고 POST
방법은 CREATE
조작에 사용된다.배치 vs 패치
1. a.k.a 부분 또는 전부 업데이트
PUT
및 PATCH
리소스 업데이트에 사용할 수 있습니다.그러나 이 두 가지 가장 큰 차이점은 하나는 자원을 갱신하고 교체할 수 있고 다른 하나는 부분적으로 갱신할 수 있다는 것이다.다시 말하면
PUT
요청을 할 때 첨부된 실체(당신이 요청한 특정 장소)는 자원의 수정 버전으로 간주되고 클라이언트가 새로운 정보로 교체할 것을 요청한다.PATCH
요청을 보냈을 때, 일부 자원만 수정합니다.나는 이 위대한 자원을 발견했다. 집을 짓는 것을 예로 들면 다음과 같다link와 저자의 시범이다.
만약 우리가 이 집을 가지고 있다면:
// House on plot 1
{
address: 'plot 1',
owner: 'segun',
type: 'duplex',
color: 'green',
rooms: '5',
kitchens: '1',
windows: 20
}
PUT
// PUT request payload to update windows of House on plot 1
{
address: 'plot 1',
owner: 'segun',
type: 'duplex',
color: 'green',
rooms: '5',
kitchens: '1',
windows: 21
}
PATCH
// Patch request payload to update windows on the House
{
windows: 21
}
2.멱
PUT
는 멱 등이고 원인은 위에서 말한 바와 같이 PATCH
는 멱 등이 아니다.요청을 다시 시도하면 요청이 실패(Method Not Allowed)
합니다.만약 PATCH
요청이 존재하지 않는 URI에 대한 것이라면, 요청은 실패할 뿐, PUT
이런 새로운 자원을 만들지 않을 것입니다.네가 가기 전에...
네가 이 문장에서 얻은 것이 있기를 바란다.본고를 요약하자면 이러한 방법의 주요 차이점은 幂 등성과 클라이언트로부터의 요청을 어떻게 처리하는가에 있다!
PUT
vsPOST
: 새로운 자원을 만들 수 있지만 PUT
만 자원을 업데이트/수정할 수 있고 幂 등이지만 POST
PUT
vsPATCH
: 자원을 수정/갱신할 수 있습니다.PATCH
는 폐쇄된 실체를 부분적으로 수정할 수 있도록 허락했고 PUT
는 기본적으로 전체 실체를 교체했다.마지막이지만 가장 중요하지 않은 것은 즐거움 코드!
리소스
HTTP 메서드
HTTP Methods(REST API 자습서)
(https://www.educative.io/edpresso/how-to-make-an-axios-post-request)(Educational.io)
배달하다
When to Use HTTP PUT and HTTP POST (케빈 소코체프 저자)
REST – PUT vs POST(REST API 자습서)
배치 vs 패치
Use of PUT vs PATCH methods in REST API real life scenarios(스택 오버플로우)
RESTful API Design — PUT vs PATCH(작자: 세공 오라)
What’s the Difference between PUT vs PATCH?(Rapid API)
Reference
이 문제에 관하여(PUT vs PATCH&PUT vs POST), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mehmehmehlol/put-vs-patch-put-vs-post-56i9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)