BPD REST APIでサポートされている HTTP メソッド

HTTPは、アーティファクトに対して実行可能な操作(作成、読み取り、更新、削除など)を提供します。
以下の HTTP メソッドがサポートされています。
表 1. HTTP メソッド
HTTP メソッド 説明
POST 新規リソースを作成します。
GET リソースを取得します。
PUT 既存のリソースを更新します。
DELETE リソースを削除します。
以下の例は、curl を使用して JSON 本体で POST 要求を送信する方法を示しています。
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
}'

この操作によってリソースの状態が変更されることはないため、GET メソッドは安全なメソッドです。

重要: REST API は、タイム・ゾーンを協定世界時 (UTC) 形式で報告します。
アプリケーションで日付または時刻 (あるいはその両方) を別のタイム・ゾーンで表示する場合は、java.text.DateFormatのインスタンスを取得し、それに必要なTimeZoneを設定し、formatを呼び出して、表示するDateオブジェクトを渡します。 以下のコード・スニペットでは、アプリケーションが実行されているデフォルト時間帯を使用しています。
// 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.

セキュリティーに関する考慮事項

HTTP メソッドを使用するときは、以下のセキュリティーの側面を考慮してください。

  • 一部の Firewall は、セキュリティー上の考慮事項により、HTTP PUT または DELETE トラフィックが Firewall を通過することを許可しません。 この制限事項に対応するため、以下の方法のいずれかでこれらの要求を送信できます。
    • X-Method-Override または X-HTTP-Method-Override HTTP ヘッダー・フィールドを使用して、POST 要求により PUT または DELETE 要求をトンネリングする。
    • 要求が BPD 関連リソースに対するものである場合は、x-method-overrideまたはx-http-method-override URI パラメーターを使用できます。 例:
      POST /rest/bpm/htm/v1/task?...&x-method-override=PUT
  • BPD 関連リソース用のいくつかの HTTP メソッドを使用して、JavaScript 式を評価することができます。 セキュリティー上の考慮事項により、JavaScript のサポートはデフォルトで使用可能ではありません。 JavaScript サポートを有効にするには、プロセス・サーバーの100Custom.xmlファイルで、関連付けられたプロパティーを以下のように設定します。
    <properties>
      <common>
        <enable-javascript-execution>true</enable-javascript-execution>
      </common>
    </properties> 

REST API 要求の URI の長さの考慮事項

ブラウザーの制限事項や、要求 URI の照会パラメーターの数と長さなどが原因で、場合によっては、サポートされる URI の長さを REST API 要求 URI の長さが超過することがあります。
回避策として、 application/x-www-form-urlencoded コンテンツ・タイプを使用する POST 要求を介して要求をトンネリングすることができます。 回避策を活用するには、REST API 要求を以下の方法で構成します。
  1. HTTP 要求で POST メソッドを使用します。
  2. X-HTTP-Method-Override HTTP ヘッダーを、元の要求の目的のメソッドに設定します。 例えば、元の要求が PUT 要求になることを目的としていた場合、このヘッダーの値を PUT に設定します。
  3. Content-Type HTTP ヘッダーの値を application/x-www-form-urlencoded に設定します。
  4. 元の要求 URI 照会ストリングの要求パラメーターを HTTP 要求の本文にすべて追加します。
例えば、タスク・インスタンスを終了するために、以下の REST API を呼び出していくつかの出力変数を設定する必要がありますが、要求 URI が長すぎます。
PUT http://host1.company.com:9080/rest/bpm/wle/v1/task/3?action=finish&params={"orderNumber":"5","customerName":{"firstName":"John","lastName":"Doe"}}
Headers:
  Accept application/json
以下の HTTP 要求は、 application/x-www-form-urlencodedコンテンツ・タイプを使用して同じ API を呼び出す方法を示しています。
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&params={"orderNumber":"5","customerName":{"firstName":"John","lastName":"Doe"}}