दोनों विधियाँ मौजूदा संसाधन को संशोधित करती हैं, और इनमें बॉडी के अर्थ में अंतर होता है। PUT बॉडी पूरी तरह से नई स्थिति होती है: जिन फ़ील्ड्स को आप छोड़ देते हैं, वे सिद्धांत रूप में हटा दिए जाते हैं या रीसेट कर दिए जाते हैं। PATCH बॉडी परिवर्तनों का विवरण होती है, जिसे सर्वर दस्तावेज़ित प्रारूप में प्रस्तुत करता है — एक आंशिक ऑब्जेक्ट, या JSON Patch की तरह ऑपरेशनों की सूची।
परिभाषा के अनुसार PUT प्रक्रिया में एकरूपता होती है: एक ही पूर्ण निरूपण को दो बार भेजने पर परिणाम एक ही रहता है। PATCH प्रक्रिया में यह गारंटी नहीं है, क्योंकि "append to this list" या "increment" जैसी क्रिया को दो बार करने पर एक बार करने से अलग परिणाम मिलता है। यही कारण है कि PATCH अनुरोधों को विशेष रूप से If-Match से लाभ होता है, जिससे पुनः प्रयास किए गए PATCH अनुरोध को दो बार भेजने के बजाय अस्वीकार किया जा सकता है।
वह PATCH असल में "PUT without the fields you did not change" । कई API इसे इसी तरह लागू करते हैं, लेकिन मेथड में ऐसा कुछ नहीं लिखा होता — मर्ज-स्टाइल PATCH और JSON Patch डॉक्यूमेंट दोनों ही PATCH हैं, लेकिन उनके अर्थ बहुत अलग हैं। और व्यवहार में कई "PUT" एंडपॉइंट्स रिप्लेस करने के बजाय मर्ज करते हैं, इसलिए जांच लें कि आपके एंडपॉइंट में कोई फ़ील्ड न होने पर क्या होता है।
पिज़्ज़ा एपीआई PATCH /pizza/v1/orders/{id} पर आंशिक अपडेट लेता है, और प्रोटोकॉल लैब PATCH /protocol/v1/documents/{id} पर RFC 6902 JSON पैच स्वीकार करता है; कैरेक्टर PUT एंडपॉइंट्स If-Match को बदलते और जाँचते हैं।
सभी शब्द · परीक्षण तकनीकें · सभी 39 मॉक REST API
आखरी अपडेट