Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En el caso de los puntos de conexión REST, el Location encabezado de respuesta indica a los clientes dónde recuperar un recurso recién creado. Data API Builder (DAB) devuelve Location para POST las inserciones. Para PUT o PATCH upserts que crean nuevas filas, se puede omitir el encabezado.
Cuando DAB establece el encabezado Location
| Scenario | Código de estado | Encabezado de ubicación (comportamiento actual) |
|---|---|---|
POST crea una nueva fila (tabla) |
201 Creado | Presente: segmentos de ruta de acceso de clave principal, por ejemplo id/123 o categoryid/3/pieceid/1. |
POST ejecuta el procedimiento almacenado que devuelve nuevas filas. |
201 Creado | Presente si se puede derivar PK; puede estar vacío cuando no lo pueda. |
PUT upsert actualiza la fila existente |
200 Ok | No está presente |
PUT upsert inserta una nueva fila (sin If-Match) |
201 Creado | Se puede omitir; no se basan en Location |
PATCH upsert actualiza la fila existente |
200 Ok | No está presente |
PATCH upsert inserta una nueva fila (sin If-Match) |
201 Creado | Se puede omitir; no se basan en Location |
PUT
/
PATCH con If-Match: * y falta fila |
404 No encontrado | No está presente |
| Cualquier actualización (existe una fila) | 200 Ok | No está presente |
Comportamiento
- Las claves principales compuestas aparecen como segmentos ordenados, por ejemplo
book_id/1/id/5001, ocategoryid/3/pieceid/1. - Las asignaciones de nombres de columna (alias) usan los nombres de campo expuestos por REST en la ruta de acceso.
Ejemplo: POST creando un nuevo elemento
Solicitud
POST /api/Books
Content-Type: application/json
{
"title": "New Book",
"publisher_id": 42
}
Respuesta
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
}
El cliente ahora GET http://localhost:50246/api/Books/id/123puede .
Ejemplo: INSERCIÓN POST en la tabla de claves compuestas
Solicitud
POST /api/Inventory
Content-Type: application/json
{
"categoryid": 3,
"pieceid": 1,
"categoryName": "SciFi"
}
Respuesta
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"
}
Ejemplo: PUT actualizando la fila existente (sin ubicación)
Solicitud
PUT http://localhost:50246/api/Books/id/1
Content-Type: application/json
{
"title": "Updated Title"
}
Respuesta
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": 1,
"title": "Updated Title"
}
(Sin Location encabezado).
Ejemplo: PUT que inserta una nueva fila
Solicitud
PUT http://localhost:50246/api/Books/id/500
Content-Type: application/json
{
"title": "Inserted via PUT",
"publisher_id": 7
}
Respuesta
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": 500,
"title": "Inserted via PUT",
"publisher_id": 7
}
(Location el encabezado puede omitirse aquí).
Ejemplo: PUT con If-Match y la fila que faltan
Solicitud
PUT http://localhost:50246/api/Books/id/500
If-Match: *
Content-Type: application/json
{
"title": "Attempted Update"
}
Respuesta
HTTP/1.1 404 Not Found
Content-Type: application/json
{
"error": "No Update could be performed, record not found"
}
(Sin Location encabezado).
Revisión
-
POST con creación:
Locationestá presente con la ruta de acceso de la clave principal. -
PUT o PATCH con actualización: No
Location. -
PUT o PATCH con insert: devuelve
201 Created;Locationse puede omitir (no depende de él). - Cuando se incluye
If-Match: *, DAB solo realiza una actualización si la fila ya existe. Si falta la fila, se produce un error en la solicitud y404 Not Foundno se realiza ninguna inserción, por lo que no se devuelve ningúnLocationencabezado.