Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V případě koncových bodů REST hlavička Location odpovědi informuje klienty, kde mají načíst nově vytvořený prostředek. Data API Builder (DAB) vrací Location vložení POST . Pro PUT nebo PATCH upserty, které vytvářejí nové řádky, může být záhlaví vynecháno.
Když DAB nastaví hlavičku Umístění
| Scenario | Kód stavu | Záhlaví umístění (aktuální chování) |
|---|---|---|
POST vytvoří nový řádek (tabulku). |
201 Vytvořeno | Prezentovat: segmenty cesty primárního klíče, například id/123categoryid/3/pieceid/1. |
POST spustí uloženou proceduru vracející nové řádky. |
201 Vytvořeno | Existuje, pokud je možné odvodit PK; může být prázdný, když to nejde. |
PUT Upsert aktualizuje existující řádek. |
200 OK | Není k dispozici |
PUT Upsert vloží nový řádek (bez If-Match) |
201 Vytvořeno | Může se vynechat; nespoléhejte na Location |
PATCH Upsert aktualizuje existující řádek. |
200 OK | Není k dispozici |
PATCH Upsert vloží nový řádek (bez If-Match) |
201 Vytvořeno | Může se vynechat; nespoléhejte na Location |
PUT
/
PATCHchybí řádek a s If-Match: * |
404 Nenalezena | Není k dispozici |
| Všechny aktualizace (řádek existoval) | 200 OK | Není k dispozici |
Chování
- Složené primární klíče se zobrazují jako uspořádané segmenty, například
book_id/1/id/5001categoryid/3/pieceid/1. - Mapování názvů sloupců (aliasů) používají názvy polí vystavených rozhraním REST v cestě.
Příklad: POST vytvoření nové položky
Žádost
POST /api/Books
Content-Type: application/json
{
"title": "New Book",
"publisher_id": 42
}
Odezva
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
}
Klient teď GET http://localhost:50246/api/Books/id/123může .
Příklad: VLOŽENÍ POST do tabulky složených klíčů
Žádost
POST /api/Inventory
Content-Type: application/json
{
"categoryid": 3,
"pieceid": 1,
"categoryName": "SciFi"
}
Odezva
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říklad: AKTUALIZACE existujícího řádku PUT (bez umístění)
Žádost
PUT http://localhost:50246/api/Books/id/1
Content-Type: application/json
{
"title": "Updated Title"
}
Odezva
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": 1,
"title": "Updated Title"
}
(Žádná Location hlavička.)
Příklad: VLOŽENÍ nového řádku
Žádost
PUT http://localhost:50246/api/Books/id/500
Content-Type: application/json
{
"title": "Inserted via PUT",
"publisher_id": 7
}
Odezva
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": 500,
"title": "Inserted via PUT",
"publisher_id": 7
}
(Location záhlaví může být zde vynecháno.)
Příklad: PUT s chybějícím If-Match a řádkem
Žádost
PUT http://localhost:50246/api/Books/id/500
If-Match: *
Content-Type: application/json
{
"title": "Attempted Update"
}
Odezva
HTTP/1.1 404 Not Found
Content-Type: application/json
{
"error": "No Update could be performed, record not found"
}
(Žádná Location hlavička.)
Review
-
POST s vytvořením:
Locationje k dispozici cesta k primárnímu klíči. -
PUT nebo PATCH s aktualizací: Ne
Location. -
PUT nebo PATCH s vložením: Vrátí
201 Created;Locationmůže být vynecháno (nezávisí na tom). - Pokud zahrnete
If-Match: *, DAB provede aktualizaci pouze v případě, že řádek již existuje. Pokud řádek chybí, požadavek selže404 Not Founda neprovádí se vložení, takže se nevrátí žádnáLocationhlavička.