HTTP métodos suportados pelas APIs REST do processo
Os métodos HTTP fornecem as operações, como criar, ler, atualizar e excluir, que podem ser executadas nos artefatos.
Os seguintes métodos HTTP são suportados:
| Método HTTP | Descrição |
|---|---|
| POST | Cria um novo recurso. |
| GET | Recupera um recurso. |
| PUT | Atualiza um recurso existente. |
| DELETE | Exclui um recurso. |
O exemplo a seguir mostra como usar curl para enviar uma solicitação POST com um corpo 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
}'O método GET é um método seguro porque o estado do recurso permanece inalterado por essa operação.
Importante: as APIs de REST relatam fusos horários no formato Hora Universal Coordenada (UTC)
Se você deseja que seu aplicativo exiba a data ou hora (ou ambos) em um fuso horário diferente, você pode obter uma instância de
java.text.DateFormat, configurar o TimeZone desejado nele e, em seguida, fazer uma chamada para format, passando o objeto Date que deseja exibir. O fragmento de código a seguir usa o fuso horário padrão no qual o
aplicativo está sendo executado:// 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.Considerações de segurança
Ao usar métodos de HTTP, considere os aspectos de segurança a seguir:
- Alguns firewalls não permitem que HTTP PUT ou DELETE o tráfego através do firewall por causa das considerações de segurança. Para acomodar essa restrição, é possível incluir essas solicitações de uma das maneiras a seguir:
- Use os campos de cabeçalho HTTP X-Method-Override ou X-HTTP-Method-Override para encapsular uma solicitação PUT ou DELETE por meio de uma solicitação POST.
- Se a solicitação for de um recurso relacionado ao processo, você poderá usar os parâmetros de URI x-method-override ou x-http-method-override . Por exemplo:
POST /rest/bpm/htm/v1/task?...&x-method-override=PUT
- Você pode usar alguns dos métodos do site HTTP para os recursos relacionados ao processo para avaliar as expressões do site JavaScript. Devido a considerações de segurança, o suporte Javascript não é ativado por padrão. Para ativar o suporte JavaScript, configure a propriedade associada no arquivo 100Custom.xml para o servidor de processo:
<properties> <common> <enable-javascript-execution>true</enable-javascript-execution> </common> </properties>
Considerações comprimento da URI para pedidos da API REST
Em algumas situações, o comprimento de um URI de pedido de API REST pode exceder o comprimento da URI suportada, por exemplo, devido a restrições do navegador, ou o número e comprimento de parâmetros de consulta no URI do pedido.Como uma solução alternativa, você pode tunnel seu pedido através de um POST pedido que usa o
application/x-www-form-urlencoded tipo de conteúdo. Para explorar a solução alternativa, construa o pedido da API REST da seguinte maneira:- Utilize o método POST no pedido de HTTP.
- Configure o X-HTTP-Method-Override do cabeçalho HTTP para o método destinado a partir de seu pedido original. Por exemplo, se você pretendia seu pedido original para ser uma PUT pedido, em seguida, configure o valor deste cabeçalho para PUT.
- Configure o valor do cabeçalho HTTP Content-Type para
application/x-www-form-urlencoded. - Inclua todos os parâmetros de pedido a partir de seu pedido original sequência de consultas da URI para o corpo do pedido de HTTP.
Por exemplo, você precisa chamar a API REST a seguir para configurar algumas variáveis de saída para terminar uma instância de tarefa, mas o URI do pedido é muito longo:
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/jsonA solicitação HTTP a seguir mostra como chamar a mesma API usando o tipo de conteúdo 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"}}