Megosztás a következőn keresztül:


A hely válaszfejléce a REST Létrehozás műveletben

REST-végpontok esetén a válaszfejléc tájékoztatja az Location ügyfeleket arról, hogy hol kell lekérni egy újonnan létrehozott erőforrást. A Data API Builder (DAB) a beszúrásokat LocationPOST adja vissza. Az PUT új sorokat létrehozó vagy PATCH az új sorokat létrehozó upserts esetében előfordulhat, hogy a fejléc nem jelenik meg.

Amikor a DAB beállítja a Hely fejlécet

Scenario Állapotkód Helyfejléc (jelenlegi viselkedés)
POST új sort (táblázatot) hoz létre 201 Létrehozva Jelenlegi: elsődleges kulcs elérési útja szegmensek, például id/123 vagy categoryid/3/pieceid/1.
POST új sorokat visszaadó tárolt eljárást hajt végre 201 Létrehozva Jelen van, ha a PK származtatható; lehet, hogy üres, ha nem.
PUT upsert a meglévő sor frissítése 200 OK Nincs jelen
PUT upsert új sort szúr be (nincs If-Match) 201 Létrehozva Kihagyható; ne hagyatkozz Location
PATCH upsert a meglévő sor frissítése 200 OK Nincs jelen
PATCH upsert új sort szúr be (nincs If-Match) 201 Létrehozva Kihagyható; ne hagyatkozz Location
PUT / PATCH with If-Match: * and row missing 404 Nem található Nincs jelen
Bármilyen frissítés (sor létezik) 200 OK Nincs jelen

Magatartás

  • Az összetett elsődleges kulcsok rendezett szegmensekként jelennek meg, például book_id/1/id/5001 vagy categoryid/3/pieceid/1.
  • Az oszlopnév-leképezések (aliasok) az elérési út REST által közzétett mezőneveit használják.

Példa: POST új elem létrehozása

Kérelem

POST /api/Books
Content-Type: application/json

{
  "title": "New Book",
  "publisher_id": 42
}

Válasz

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
}

Az ügyfél most már GET http://localhost:50246/api/Books/id/123tud .

Példa: POST beszúrása összetett kulcstáblába

Kérelem

POST /api/Inventory
Content-Type: application/json

{
  "categoryid": 3,
  "pieceid": 1,
  "categoryName": "SciFi"
}

Válasz

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"
}

Példa: PUT meglévő sor frissítése (nincs hely)

Kérelem

PUT http://localhost:50246/api/Books/id/1
Content-Type: application/json

{
  "title": "Updated Title"
}

Válasz

HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": 1,
  "title": "Updated Title"
}

(Nincs Location fejléc.)

Példa: PUT új sor beszúrása

Kérelem

PUT http://localhost:50246/api/Books/id/500
Content-Type: application/json

{
  "title": "Inserted via PUT",
  "publisher_id": 7
}

Válasz

HTTP/1.1 201 Created
Content-Type: application/json

{
  "id": 500,
  "title": "Inserted via PUT",
  "publisher_id": 7
}

(Location a fejléc itt kihagyható.)

Példa: PUT If-Match és hiányzó sor

Kérelem

PUT http://localhost:50246/api/Books/id/500
If-Match: *
Content-Type: application/json

{
  "title": "Attempted Update"
}

Válasz

HTTP/1.1 404 Not Found
Content-Type: application/json

{
  "error": "No Update could be performed, record not found"
}

(Nincs Location fejléc.)

Felülvizsgálat

  • POST létrehozással: Location az elsődleges kulcs elérési útjával együtt jelen van.
  • PUT vagy PATCH frissítéssel: Nem Location.
  • PUT vagy PATCH with insert: Returns 201 Created; Location is kihagyható (nem függ attól).
  • A belefoglaláskor If-Match: *a DAB csak akkor hajt végre frissítést, ha a sor már létezik. Ha a sor hiányzik, a kérés sikertelen 404 Not Found lesz, és nem történik beszúrás, ezért nem Location ad vissza fejlécet.