Métodos HTTP compatibles con las API REST de BPD
Los métodos HTTP proporcionan las operaciones, como crear, leer, actualizar y eliminar, que se pueden realizar en los artefactos.
Son compatibles los siguientes métodos HTTP:
Método HTTP | Descripción |
---|---|
POST | Crea un recurso nuevo. |
GET | Recupera un recurso. |
PUT | Actualiza un recurso existente. |
DELETE | Suprime un recurso. |
El ejemplo siguiente muestra cómo utilizar curl para enviar una solicitud POST con un cuerpo JSON.
curl --location 'https://localhost:9443/ops/system/login' \
--user 'user:password' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"refresh_groups": true,
"requested_lifetime": 7200
}'
El método GET es un método seguro porque el estado del recurso permanece inalterado por esta operación.
Importante: Las API REST notifican los husos horarios en formato UTC (Coordinated Universal Time).
Si desea que la aplicación muestre la fecha u hora (o ambas) en un huso horario distinto, puede obtener una instancia de
java.text.DateFormat
, establecer el TimeZone
que desea y, a continuación, llamar a format
, pasando el objeto Date
que desea visualizar. El siguiente fragmento de código utiliza el uso horario predeterminado en el que se ejecuta la aplicación:// Assuming that "dateFromREST" is a java.util.Date object
DateFormat df = DateFormat.getDateTimeInstance();
TimeZone tz = TimeZone.getDefault();
df.setTimeZone(tz);
String formattedDate = df.format(dateFromREST);
// formattedDate has the date you want to show to the user.
Consideraciones acerca de la seguridad
Cuando utilice los métodos HTTP, tenga en cuenta los siguientes aspectos de seguridad:
- Algunos cortafuegos no permiten tráfico HTTP PUT
ni DELETE a través del cortafuegos debido a consideraciones de seguridad. Para adaptarse a esta
restricción, puede enviar estas solicitudes de una de las maneras siguientes:
- Utilice los campos de cabecera HTTP X-Method-Override o X-HTTP-Method-Override para pasar una solicitud PUT o DELETE a través de una solicitud POST.
- Si la solicitud es para un recurso relacionado con BPD, puede utilizar los parámetros x-method-override o x-http-method-override URI. Por ejemplo:
POST /rest/bpm/htm/v1/task?...&x-method-override=PUT
- Puede utilizar algunos de los métodos HTTP para los recursos relacionados con BPD para evaluar expresiones JavaScript. Por motivos de seguridad, el soporte de JavaScript no está habilitado de forma predeterminada. Para habilitar el soporte de JavaScript, establezca la propiedad asociada en el archivo 100Custom.xml para el servidor de procesos:
<properties> <common> <enable-javascript-execution>true</enable-javascript-execution> </common> </properties>
Consideraciones sobre la longitud del URI para solicitudes de API REST
En algunos casos, la longitud de un URI de solicitud de API REST puede sobrepasar la longitud de URI soportada, por ejemplo, debido a las restricciones en el navegador o al número y la longitud de los parámetros de consulta en el URI de la solicitud.Como
solución, puede pasar una solicitud mediante una solicitud POST que utiliza el tipo de contenido
application/x-www-form-urlencoded
. Para aprovechar la solución, construya la solicitud de API REST de la siguiente forma:- Utilice el método POST en la solicitud HTTP.
- Establezca la cabecera HTTP X-HTTP-Method-Override en el método previsto de la solicitud original. Por ejemplo, si su objetivo es que la solicitud original fuera una solicitud PUT, establezca el valor de esta cabecera en PUT.
- Establezca el valor de la cabecera HTTP Content-Type en
application/x-www-form-urlencoded
. - Añada todos los parámetros de solicitud de la serie de consulta del URI de la solicitud original en el cuerpo de la solicitud HTTP.
Por ejemplo, supongamos que debe invocar la siguiente API REST para establecer algunas variables de salida para finalizar una instancia de tarea, pero el URI de solicitud es demasiado largo:
PUT http://host1.company.com:9080/rest/bpm/wle/v1/task/3?action=finish¶ms={"orderNumber":"5","customerName":{"firstName":"John","lastName":"Doe"}}
Headers:
Accept application/json
La siguiente solicitud HTTP muestra cómo llamar a la misma API utilizando el tipo de contenido application/x-www-form-urlencoded
:POST http://host1.company.com:9080/rest/bpm/wle/v1/task/3
Headers
Accept application/json
Content-Type: application/x-www-form-urlencoded
X-Method-Override: PUT
Request Body:
action=finish¶ms={"orderNumber":"5","customerName":{"firstName":"John","lastName":"Doe"}}