Método HTTP PUT
La operación HTTP PUT se utiliza para la sustitución completa de un recurso OSLC. El método PUT actualiza las propiedades de literal y las propiedades de recurso local y suprime las propiedades de recursos local que no estén incluidas en la solicitud.
Las reglas siguientes se aplican cuando se utiliza el método PUT para sustituir un recurso OSLC :
- Se actualizan todas las propiedades literales especificadas en el documento de solicitud. Cualquier propiedad literal que no está especificada como parte de la solicitud no se ve afectada de forma explícita. Sin embargo, pueden verse implícitamente afectadas por la lógica empresarial que está conectada al recurso. Esta regla es la misma que cuando utiliza el método PATCH para actualizar un recurso.
- Todas las propiedades de recursos locales se sustituyen por los valores de la propiedad correspondiente de la solicitud. Si la propiedad de recurso no está incluida en la solicitud, el recurso correspondiente se suprime. Si la propiedad de recurso está incluida, su valor sustituye el valor en el servidor.
- Los recursos de referencia no pueden actualizarse de forma explícita. No obstante, puede actualizar las propiedades que hagan referencia al recurso, y las propiedades siguen el modelo de actualización de propiedades literales. Esta regla es la misma que cuando utiliza el método PATCH para actualizar un recurso.
En los ejemplos siguientes, el recurso de tarea de trabajo tiene una propiedad literal, taskname, y una propiedad de recurso parts. La propiedad parts apunta a las partes del recurso local y está asociada con dos registros de partes. Si una solicitud PUT contiene la propiedad taskname y no la propiedad parts, el nombre de tarea se actualiza y se suprimen los datos de partes.
Ejemplo: actualización de una propiedad literal
PUT http://yourserver/oslc/so/WorkTask/123
{
"dcterms:taskname": "Check-out Leaking – Modified for Test"
}
204 No Content
ETag: 1376596202470
El nombre de tarea se cambia a Check-out
Leaking – Modified for Test
. Dado
que los datos de parts no estaban incluidos en el método, los registros de partes se suprimen.
Ejemplo: actualización de una propiedad de recurso local
PUT http://yourserver/oslc/so/WorkTask/123
{
“spi:parts”: [
{
“spi:partsid": "0000000067",
"spi:quantity": 5
}
]
}
204 No Content
ETag: 1376596202470
Se realiza una búsqueda de un registro de partes con el ID
0000000067
. Si existe un registro de partes así, se actualiza. Si no se encuentra ninguna coincidencia, se crea un registro de
partes nuevo. Se suprimen el resto de datos de partes para este recurso de tarea de trabajo. Como la propiedad
taskname no está incluida en el método, el nombre de tarea no forma parte del solicitador y el valor
no se ve afectado.