Metody HTTP obsługiwane przez interfejsy API REST definicji BPD
Metody HTTP udostępniają operacje, takie jak tworzenie, odczytywanie, aktualizowanie i usuwanie, które można wykonywać na artefaktach.
Obsługiwane są następujące metody HTTP:
| Metoda HTTP | Opis |
|---|---|
| POST | Tworzy nowy zasób. |
| GET | Pobiera zasób. |
| PUT | Aktualizuje istniejący zasób. |
| DELETE | Usuwa zasób. |
Metoda GET jest bezpieczna, ponieważ po jej wykonaniu stan zasobu pozostaje niezmieniony.
Ważne: interfejsy REST API raporują strefy czasowe w formacie UTC (Coordinated Universal Time).
Jeśli aplikacja ma wyświetlać datę lub godzinę w innej strefie czasowej, można pobrać instancję
java.text.DateFormat, ustawić na niej TimeZone, a następnie wywołać format, przekazując obiekt Date, który ma być wyświetlany. W poniższym fragmencie kodu używana jest domyślna strefa czasowa, w której działa aplikacja:// 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.Zagadnienia związane z zabezpieczeniami
Podczas korzystania z metod HTTP należy wziąć pod uwagę następujące uwagi dotyczące bezpieczeństwa:
- Niektóre firewalle nie zezwalają na ruch HTTP generowany przez metody PUT lub DELETE ze względów bezpieczeństwa. Aby uwzględnić to ograniczenie, takie żądania można wysłać w jeden z następujących sposobów:
- Użyj pól nagłówka HTTP X-Method-Override lub X-HTTP-Method-Override, aby tunelować żądania PUT lub DELETE za pośrednictwem żądania POST.
- Jeśli żądanie dotyczy zasobu związanego z definicją BPD, można użyć parametrów identyfikatora URI produktu x-method-override lub x-http-method-override. Na przykład:
POST /rest/bpm/htm/v1/task?...&x-method-override=PUT
- Niektórych metod HTTP zasobów związanych z definicją procesu biznesowego można użyć do wartościowania wyrażeń JavaScript. Ze względów bezpieczeństwa obsługa języka JavaScript nie jest domyślnie włączona. Aby włączyć obsługę języka JavaScript, należy ustawić powiązaną właściwość w pliku 100Custom.xml dla serwera procesów:
<properties> <common> <enable-javascript-execution>true</enable-javascript-execution> </common> </properties>
Uwagi dotyczące długości identyfikatora URI w żądaniach interfejsu REST API
W niektórych sytuacjach długość identyfikatora URI żądania interfejsu REST API może przekraczać obsługiwaną długość identyfikatora URI, na przykład z powodu ograniczeń przeglądarki lub ze względu na liczbę i długość parametrów zapytania w identyfikatorze URI żądania.Aby obejść ten problem, można tunelować żądanie za pośrednictwem żądania POST, które korzysta z typu treści
application/x-www-form-urlencoded. Aby wykorzystać to obejście, należy utworzyć żądanie interfejsu REST API w następujący sposób:- Użyj metody POST w żądaniu HTTP.
- Ustaw w nagłówku HTTP X-HTTP-Method-Override odpowiednią metodę z oryginalnego żądania. Na przykład jeśli oryginalne żądanie miało być żądaniem PUT, ustaw w tym nagłówku wartość PUT.
- Ustaw wartość nagłówka HTTP Content-Type na wartość
application/x-www-form-urlencoded. - Dodaj wszystkie parametry żądania z oryginalnego łańcucha zapytania żądania URI do treści żądania HTTP.
Na przykład konieczne jest wywołanie następującego interfejsu REST API w celu ustawienia kilku zmiennych wyjściowych i zakończenia instancji zadania, ale identyfikator URI żądania jest zbyt długi:
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/jsonW poniższym żądaniu HTTP przedstawiono sposób wywołania tego samego interfejsu API przy użyciu application/x-www-form-urlencoded content type: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"}}