PATCH
istekler, bir kaynağa uygulanacak işlemler kümesini tanımlar; aynı işlemi aynı kaynağa iki kez uygularsanız, sonuç aynı olmayabilir. Bunun nedeni operasyonları tanımlamanın size kalmış olmasıdır. Diğer bir deyişle, birleştirme kurallarını tanımlamanız gerekir .
PATCH
Kaynakları yalnızca JSON'a değil, birçok farklı formatta yamalamak için kullanılabileceğini unutmayın .
Bu nedenle , birleştirme kurallarını özümseyici olarak tanımlarsanız, bir PATCH
istek idempotent olabilir .
Idempotent örneği:
// Original resource
{
name: 'Tito',
age: 32
}
// PATCH request
{
age: 33
}
// New resource
{
name: 'Tito',
age: 33
}
Belirsiz olmayan örnek:
// Original resource
{
name: 'Tito',
age: 32
}
// PATCH request
{
$increment: 'age'
}
// New resource
{
name: 'Tito',
age: 33
}
İkinci örnekte, bir niteliği artırmak için oluşturduğum "Mongo benzeri" sözdizimini kullandım. Açıkçası, bu aynı anlama gelmez, çünkü aynı talebi birden çok kez göndermek, her seferinde farklı sonuçlara yol açacaktır.
Şimdi böyle bir uydurma sözdiziminin kullanılmasının geçerli olup olmadığını merak ediyor olabilirsiniz. Standartlara göre , bu:
PUT ve PATCH istekleri arasındaki fark, sunucunun, Talep URI'si tarafından tanımlanan kaynağı değiştirmek için ekteki varlığı işleme biçimine yansıtılır. Bir PUT isteğinde, ekteki varlık, kaynak sunucuda depolanan kaynağın değiştirilmiş bir sürümü olarak kabul edilir ve müşteri saklanan sürümün değiştirilmesini ister. Bununla birlikte PATCH ile, ekteki varlık, yeni bir sürüm üretmek için o anda sunucuda bulunan bir kaynağın nasıl değiştirilebileceğini açıklayan bir dizi talimat içerir.
Ayrıca, istekleri bu şekilde kullanmanın huzurlu olup olmadığını da merak ediyor olabilirsiniz PATCH
ve birçok kişi olmadığını düşünüyor, işte bu konu hakkında birçok yorum ile iyi bir cevap .
{"name": "bendjamin franklin"}