Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Untuk titik akhir REST, Location header respons memberi tahu klien tempat mengambil sumber daya yang baru dibuat. Data API builder (DAB) mengembalikan Location untuk POST sisipan. Untuk PUT atau PATCH upsert yang membuat baris baru, header mungkin dihilangkan.
Saat DAB mengatur header Lokasi
| Scenario | Kode Status | Header Lokasi (perilaku saat ini) |
|---|---|---|
POST membuat baris baru (tabel) |
201 - Dibuat | Sajikan: segmen jalur kunci utama, misalnya id/123 atau categoryid/3/pieceid/1. |
POST menjalankan prosedur tersimpan yang mengembalikan baris baru |
201 - Dibuat | Ada jika PK dapat diturunkan; mungkin kosong ketika tidak bisa. |
PUT upsert memperbarui baris yang ada |
200 OK (Permintaan berhasil) | Tidak ada |
PUT upsert menyisipkan baris baru (tanpa If-Match) |
201 - Dibuat | Dapat dihilangkan; jangan mengandalkan Location |
PATCH upsert memperbarui baris yang ada |
200 OK (Permintaan berhasil) | Tidak ada |
PATCH upsert menyisipkan baris baru (tanpa If-Match) |
201 - Dibuat | Dapat dihilangkan; jangan mengandalkan Location |
PUT
/
PATCH dengan If-Match: * baris dan hilang |
404 Tidak ditemukan | Tidak ada |
| Pembaruan apa pun (baris ada) | 200 OK (Permintaan berhasil) | Tidak ada |
Perilaku
- Kunci primer komposit muncul sebagai segmen yang diurutkan, misalnya
book_id/1/id/5001ataucategoryid/3/pieceid/1. - Pemetaan nama kolom (alias) menggunakan nama bidang yang diekspos REST di jalur.
Contoh: POST membuat item baru
Permohonan
POST /api/Books
Content-Type: application/json
{
"title": "New Book",
"publisher_id": 42
}
Jawaban
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
}
Klien sekarang GET http://localhost:50246/api/Books/id/123dapat .
Contoh: POST menyisipkan ke dalam tabel kunci komposit
Permohonan
POST /api/Inventory
Content-Type: application/json
{
"categoryid": 3,
"pieceid": 1,
"categoryName": "SciFi"
}
Jawaban
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"
}
Contoh: PUT memperbarui baris yang ada (tanpa Lokasi)
Permohonan
PUT http://localhost:50246/api/Books/id/1
Content-Type: application/json
{
"title": "Updated Title"
}
Jawaban
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": 1,
"title": "Updated Title"
}
(Tidak ada Location header.)
Contoh: PUT menyisipkan baris baru
Permohonan
PUT http://localhost:50246/api/Books/id/500
Content-Type: application/json
{
"title": "Inserted via PUT",
"publisher_id": 7
}
Jawaban
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": 500,
"title": "Inserted via PUT",
"publisher_id": 7
}
(Location header dapat dihilangkan di sini.)
Contoh: PUT dengan If-Match dan baris hilang
Permohonan
PUT http://localhost:50246/api/Books/id/500
If-Match: *
Content-Type: application/json
{
"title": "Attempted Update"
}
Jawaban
HTTP/1.1 404 Not Found
Content-Type: application/json
{
"error": "No Update could be performed, record not found"
}
(Tidak ada Location header.)
Tinjauan
-
POST dengan pembuatan:
Locationhadir dengan jalur kunci utama. -
PUT atau PATCH dengan pembaruan: Tidak
Location. -
PUT atau PATCH dengan insert: Returns
201 Created;Locationmungkin dihilangkan (jangan bergantung padanya). - Saat Anda menyertakan
If-Match: *, DAB hanya melakukan pembaruan jika baris sudah ada. Jika baris hilang, permintaan gagal dengan404 Not Founddan tidak ada penyisipan yang dilakukan, sehingga tidak adaLocationheader yang dikembalikan.