Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Für REST-Endpunkte teilt der Location Antwortheader Clients mit, wo eine neu erstellte Ressource abgerufen werden soll. Der Daten-API-Generator (DAB) gibt für Location Einfügungen zurückPOST. Für PUT oder PATCH Upserts, die neue Zeilen erstellen, wird die Kopfzeile möglicherweise weggelassen.
Wenn DAB den Location-Header festlegt
| Scenario | Statuscode | Positionsheader (aktuelles Verhalten) |
|---|---|---|
POST erstellt eine neue Zeile (Tabelle) |
201 Erstellt | Vorhanden: Primärschlüsselpfadsegmente, z. B id/123 . oder categoryid/3/pieceid/1. |
POST führt gespeicherte Prozedur aus, die neue Zeilen zurückgibt. |
201 Erstellt | Vorhanden, wenn PK abgeleitet werden kann; ist möglicherweise leer, wenn dies nicht möglich ist. |
PUT Upsert aktualisiert vorhandene Zeile |
200 OK (Anforderung erfolgreich) | Nicht vorhanden |
PUT Upsert fügt neue Zeile ein (keine If-Match) |
201 Erstellt | Kann weggelassen werden; verlassen Sie sich nicht auf Location |
PATCH Upsert aktualisiert vorhandene Zeile |
200 OK (Anforderung erfolgreich) | Nicht vorhanden |
PATCH Upsert fügt neue Zeile ein (keine If-Match) |
201 Erstellt | Kann weggelassen werden; verlassen Sie sich nicht auf Location |
PUT
/
PATCH mit fehlender Zeile und fehlender If-Match: * Zeile |
404 nicht gefunden | Nicht vorhanden |
| Alle Aktualisierungen (Zeile vorhanden) | 200 OK (Anforderung erfolgreich) | Nicht vorhanden |
Verhalten
- Zusammengesetzte Primärschlüssel werden als sortierte Segmente angezeigt, z. B
book_id/1/id/5001. odercategoryid/3/pieceid/1. - Spaltennamenzuordnungen (Aliase) verwenden die REST-verfügbar gemachten Feldnamen im Pfad.
Beispiel: POST-Erstellung eines neuen Elements
Anfrage
POST /api/Books
Content-Type: application/json
{
"title": "New Book",
"publisher_id": 42
}
Antwort
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
}
Der Client kann jetzt GET http://localhost:50246/api/Books/id/123.
Beispiel: POST-Einfügen in zusammengesetzte Schlüsseltabelle
Anfrage
POST /api/Inventory
Content-Type: application/json
{
"categoryid": 3,
"pieceid": 1,
"categoryName": "SciFi"
}
Antwort
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"
}
Beispiel: PUT-Aktualisierung vorhandener Zeile (kein Speicherort)
Anfrage
PUT http://localhost:50246/api/Books/id/1
Content-Type: application/json
{
"title": "Updated Title"
}
Antwort
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": 1,
"title": "Updated Title"
}
(Keine Location Kopfzeile.)
Beispiel: EINFÜGEN einer neuen Zeile
Anfrage
PUT http://localhost:50246/api/Books/id/500
Content-Type: application/json
{
"title": "Inserted via PUT",
"publisher_id": 7
}
Antwort
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": 500,
"title": "Inserted via PUT",
"publisher_id": 7
}
(Location Kopfzeile kann hier weggelassen werden.)
Beispiel: PUT mit If-Match und fehlender Zeile
Anfrage
PUT http://localhost:50246/api/Books/id/500
If-Match: *
Content-Type: application/json
{
"title": "Attempted Update"
}
Antwort
HTTP/1.1 404 Not Found
Content-Type: application/json
{
"error": "No Update could be performed, record not found"
}
(Keine Location Kopfzeile.)
Review
-
POST mit Erstellung:
Locationist mit dem Primärschlüsselpfad vorhanden. -
PUT oder PATCH mit Update: Nein
Location. -
PUT oder PATCH mit Einfügemarke: Rückgaben
201 Created;Locationkann weggelassen werden (nicht davon abhängig). - Wenn Sie diese Einschließen verwenden
If-Match: *, führt DAB nur dann eine Aktualisierung durch, wenn die Zeile bereits vorhanden ist. Wenn die Zeile fehlt, schlägt die Anforderung fehl404 Not Found, und es wird kein Einfügen ausgeführt, sodass keineLocationKopfzeile zurückgegeben wird.