Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
REST uç noktaları için yanıt üst bilgisi istemcilere Location yeni oluşturulan kaynağı nereden alacaklarını bildirir. Veri API oluşturucusu (DAB), eklemeler için Location döndürürPOST. Yeni satırlar oluşturan veya PUT upsert'ler için PATCH üst bilgi atlanabilir.
DAB Konum üst bilgisini ayarlarken
| Scenario | Durum Kodu | Konum Üst Bilgisi (geçerli davranış) |
|---|---|---|
POST yeni satır oluşturur (tablo) |
201 Oluşturuldu | Mevcut: birincil anahtar yol kesimleri, örneğin id/123 veya categoryid/3/pieceid/1. |
POST yeni satır döndüren saklı yordamı yürütür |
201 Oluşturuldu | PK türetilebilirse mevcut; kullanılamadığında boş olabilir. |
PUT upsert güncelleştirmeleri var olan satır |
200 Tamam | Yok |
PUT upsert yeni satır ekler (If-Matchyok ) |
201 Oluşturuldu | Atlanabilir; güvenmeyin Location |
PATCH upsert güncelleştirmeleri var olan satır |
200 Tamam | Yok |
PATCH upsert yeni satır ekler (If-Matchyok ) |
201 Oluşturuldu | Atlanabilir; güvenmeyin Location |
PUT
/
PATCH ve If-Match: * satırı eksik |
404 Bulunamadı | Yok |
| Herhangi bir güncelleştirme (satır mevcut) | 200 Tamam | Yok |
Davranış
- Bileşik birincil anahtarlar, örneğin
book_id/1/id/5001veyacategoryid/3/pieceid/1sıralı kesimler olarak görünür. - Sütun adı eşlemeleri (diğer adlar), yoldaki REST tarafından kullanıma sunulan alan adlarını kullanır.
Örnek: POST yeni öğe oluşturma
İstek
POST /api/Books
Content-Type: application/json
{
"title": "New Book",
"publisher_id": 42
}
Yanıt
HTTP/1.1 201 Created
Location: http://localhost:50246/api/Books/id/123
Content-Type: application/json
{
"id": 123,
"title": "New Book",
"publisher_id": 42
}
İstemci artık GET http://localhost:50246/api/Books/id/123yapabilir.
Örnek: Bileşik anahtar tablosuna POST ekleme
İstek
POST /api/Inventory
Content-Type: application/json
{
"categoryid": 3,
"pieceid": 1,
"categoryName": "SciFi"
}
Yanıt
HTTP/1.1 201 Created
Location: http://localhost:50246/api/Inventory/categoryid/3/pieceid/1
Content-Type: application/json
{
"categoryid": 3,
"pieceid": 1,
"categoryName": "SciFi"
}
Örnek: PUT varolan satırı güncelleştiriyor (Konum yok)
İstek
PUT http://localhost:50246/api/Books/id/1
Content-Type: application/json
{
"title": "Updated Title"
}
Yanıt
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": 1,
"title": "Updated Title"
}
(Üst bilgi yok Location .)
Örnek: PUT yeni satır ekleme
İstek
PUT http://localhost:50246/api/Books/id/500
Content-Type: application/json
{
"title": "Inserted via PUT",
"publisher_id": 7
}
Yanıt
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": 500,
"title": "Inserted via PUT",
"publisher_id": 7
}
(Location üst bilgi burada atlanabilir.)
Örnek: If-Match ve satır eksik put
İstek
PUT http://localhost:50246/api/Books/id/500
If-Match: *
Content-Type: application/json
{
"title": "Attempted Update"
}
Yanıt
HTTP/1.1 404 Not Found
Content-Type: application/json
{
"error": "No Update could be performed, record not found"
}
(Üst bilgi yok Location .)
İnceleme
-
Oluşturma ile POST:
Locationbirincil anahtar yolu ile birlikte bulunur. -
GÜNCELLEŞTIRMEli PUT veya PATCH: Hayır
Location. -
EKLEME ile PUT veya PATCH: Döndürür
201 Created;Locationatlanabilir (buna bağlı değildir). - eklediğinizde
If-Match: *, DAB yalnızca satır zaten varsa bir güncelleştirme gerçekleştirir. Satır eksikse, istek ile404 Not Foundbaşarısız olur ve ekleme yapılmaz, bu nedenle üst bilgi döndürülürLocation.