PATCH
คำร้องขออธิบายชุดของการดำเนินงานที่จะนำไปใช้กับทรัพยากรถ้าคุณใช้ชุดการดำเนินการเดียวกันสองครั้งกับทรัพยากรเดียวกันผลลัพธ์อาจไม่เหมือนกัน นี่เป็นเพราะการกำหนดการดำเนินงานขึ้นอยู่กับคุณ ในคำอื่น ๆ ที่คุณต้องกำหนดกฎการควบรวม
โปรดจำไว้ว่าPATCH
สามารถใช้คำขอสำหรับการแพตช์ทรัพยากรในหลาย ๆ รูปแบบไม่ใช่แค่ JSON
ดังนั้นPATCH
คำขอสามารถ idempotent ถ้าคุณกำหนดกฎการควบรวมที่จะ idempotent
ตัวอย่าง Idempotent:
// Original resource
{
name: 'Tito',
age: 32
}
// PATCH request
{
age: 33
}
// New resource
{
name: 'Tito',
age: 33
}
ตัวอย่างที่ไม่ใช่ idempotent:
// Original resource
{
name: 'Tito',
age: 32
}
// PATCH request
{
$increment: 'age'
}
// New resource
{
name: 'Tito',
age: 33
}
ในตัวอย่างที่สองฉันใช้ไวยากรณ์ "Mongo like" ฉันสร้างขึ้นเพื่อเพิ่มคุณสมบัติ เห็นได้ชัดว่านี่ไม่ใช่ idempotent เนื่องจากการส่งคำร้องขอซ้ำหลายครั้งจะทำให้ได้ผลลัพธ์ที่แตกต่างกันในแต่ละครั้ง
ตอนนี้คุณอาจสงสัยว่าการใช้ไวยากรณ์ที่ถูกสร้างขึ้นนั้นถูกต้องหรือไม่ ตามมาตรฐานมันคือ:
ความแตกต่างระหว่างคำขอ PUT และ PATCH จะสะท้อนให้เห็นในวิธีที่เซิร์ฟเวอร์ประมวลผลเอนทิตีที่ปิดล้อมเพื่อแก้ไขทรัพยากรที่ระบุโดย Request-URI ในคำขอ PUT เอนทิตีที่ปิดล้อมจะถือเป็นเวอร์ชันดัดแปลงของทรัพยากรที่เก็บไว้ในเซิร์ฟเวอร์ต้นทางและไคลเอนต์ร้องขอให้แทนที่เวอร์ชันที่เก็บไว้ อย่างไรก็ตามด้วย PATCH เอนทิตีที่ถูกปิดล้อมจะมีชุดคำสั่งที่อธิบายถึงวิธีที่ทรัพยากรที่อยู่บนเซิร์ฟเวอร์ต้นทางควรได้รับการแก้ไขเพื่อสร้างเวอร์ชันใหม่
และคุณอาจจะสงสัยว่ามันเป็นการพักผ่อนที่จะใช้PATCH
วิธีนี้หรือไม่และหลายคนคิดว่าไม่ใช่นี่เป็นคำตอบที่ดีพร้อมความคิดเห็นมากมายเกี่ยวกับปัญหา
{"name": "bendjamin franklin"}