Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Voor REST-eindpunten vertelt de Location antwoordheader clients waar een zojuist gemaakte resource moet worden opgehaald. Data API Builder (DAB) retourneert Location voor POST invoegingen. Voor PUT of PATCH upserts die nieuwe rijen maken, kan de koptekst worden weggelaten.
Wanneer DAB de locatieheader instelt
| Scenario | Statuscode | Locatiekoptekst (huidig gedrag) |
|---|---|---|
POST maakt een nieuwe rij (tabel) |
201 Aangemaakt | Aanwezig: primaire-sleutelpadsegmenten, bijvoorbeeld id/123 of categoryid/3/pieceid/1. |
POST voert opgeslagen procedure die nieuwe rijen retourneert |
201 Aangemaakt | Aanwezig als PK kan worden afgeleid; kan leeg zijn als dat niet mogelijk is. |
PUT upsert werkt bestaande rij bij |
200 Akkoord | Absent |
PUT met upsert wordt een nieuwe rij ingevoegd (geen If-Match) |
201 Aangemaakt | Mag worden weggelaten; vertrouw niet op Location |
PATCH upsert werkt bestaande rij bij |
200 Akkoord | Absent |
PATCH met upsert wordt een nieuwe rij ingevoegd (geen If-Match) |
201 Aangemaakt | Mag worden weggelaten; vertrouw niet op Location |
PUT
/
PATCH met If-Match: * en rij ontbreekt |
404 Niet gevonden | Absent |
| Elke update (rij bestond) | 200 Akkoord | Absent |
Gedrag
- Samengestelde primaire sleutels worden bijvoorbeeld
book_id/1/id/5001weergegeven als geordende segmenten ofcategoryid/3/pieceid/1. - Kolomnaamtoewijzingen (aliassen) maken gebruik van de veldnamen die met REST beschikbaar zijn in het pad.
Voorbeeld: POST die een nieuw item maakt
Aanvraag
POST /api/Books
Content-Type: application/json
{
"title": "New Book",
"publisher_id": 42
}
Reactie
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
}
Client kan nu GET http://localhost:50246/api/Books/id/123.
Voorbeeld: POST invoegen in een samengestelde sleuteltabel
Aanvraag
POST /api/Inventory
Content-Type: application/json
{
"categoryid": 3,
"pieceid": 1,
"categoryName": "SciFi"
}
Reactie
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"
}
Voorbeeld: PUT die bestaande rij bijwerkt (geen locatie)
Aanvraag
PUT http://localhost:50246/api/Books/id/1
Content-Type: application/json
{
"title": "Updated Title"
}
Reactie
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": 1,
"title": "Updated Title"
}
(Geen Location koptekst.)
Voorbeeld: PUT die nieuwe rij invoegt
Aanvraag
PUT http://localhost:50246/api/Books/id/500
Content-Type: application/json
{
"title": "Inserted via PUT",
"publisher_id": 7
}
Reactie
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": 500,
"title": "Inserted via PUT",
"publisher_id": 7
}
(Location koptekst kan hier worden weggelaten.)
Voorbeeld: PUT met If-Match en rij ontbreekt
Aanvraag
PUT http://localhost:50246/api/Books/id/500
If-Match: *
Content-Type: application/json
{
"title": "Attempted Update"
}
Reactie
HTTP/1.1 404 Not Found
Content-Type: application/json
{
"error": "No Update could be performed, record not found"
}
(Geen Location koptekst.)
Review
-
POST met het maken:
Locationis aanwezig met het primaire-sleutelpad. -
PUT of PATCH met update: Nee
Location. -
PUT of PATCH met insert: Retourneert
201 CreatedLocation; kan worden weggelaten (is niet afhankelijk van het). - Wanneer u deze opneemt
If-Match: *, voert DAB alleen een update uit als de rij al bestaat. Als de rij ontbreekt, mislukt de aanvraag en404 Not Foundwordt er geen invoegbewerking uitgevoerd, dus er wordt geenLocationheader geretourneerd.