WebApi kullanarak bir RESTful web hizmeti tasarlıyorum ve nesneleri güncellerken / oluştururken hangi HTTP yanıtlarının ve yanıt gövdelerinin geri döneceğini merak ediyorum.
Örneğin bazı JSON'ları web servisine göndermek ve ardından bir nesne oluşturmak için POST yöntemini kullanabilirim. HTTP durumunu ayarlamak (201) veya ok (200) olarak ayarlamak ve basitçe "Yeni Çalışan eklendi" gibi bir mesaj döndürmek ya da orijinal olarak gönderilen nesneyi döndürmek en iyi yöntem midir?
Aynı PUT yöntemi için de geçerlidir. Hangi HTTP durumunu kullanmak en iyisidir ve oluşturulan nesneyi mi yoksa sadece bir mesajı mı geri göndermem gerekir? Kullanıcının hangi nesneyi oluşturmaya / güncellemeye çalıştığını bildiği gerçeğini göz önüne alarak.
Düşüncesi olan var mı?
Örnek:
Yeni Çalışan ekle:
POST /api/employee HTTP/1.1
Host: localhost:8000
Content-Type: application/json
{
"Employee": {
"Name" : "Joe Bloggs",
"Department" : "Finance"
}
}
Mevcut çalışanı güncelle:
PUT /api/employee HTTP/1.1
Host: localhost:8000
Content-Type: application/json
{
"Employee": {
"Id" : 1
"Name" : "Joe Bloggs",
"Department" : "IT"
}
}
Tepkiler:
Oluşturulan / güncellenen nesneyle yanıt
HTTP/1.1 201 Created
Content-Length: 39
Content-Type: application/json; charset=utf-8
Date: Mon, 28 Mar 2016 14:32:39 GMT
{
"Employee": {
"Id" : 1
"Name" : "Joe Bloggs",
"Department" : "IT"
}
}
Sadece mesajla cevap:
HTTP/1.1 200 OK
Content-Length: 39
Content-Type: application/json; charset=utf-8
Date: Mon, 28 Mar 2016 14:32:39 GMT
{
"Message": "Employee updated"
}
Sadece durum koduyla yanıt:
HTTP/1.1 204 No Content
Content-Length: 39
Date: Mon, 28 Mar 2016 14:32:39 GMT
UPDATE/INSERT ... RETURNING
SQL için Postgresql değişkenine çok benzer . Özellikle yeni verilerin sunulmasını ve güncellenmiş atom sürümü için talepte bulunmasını sağladığı için son derece kullanışlıdır.