ユニット core.http
外部RESTサービスを呼び出すメソッドを提供するスクリプトユニットです。
addParameter
procedure addParameter(request: http\_request, parameter: string, value: string)
リクエストにクエリパラメーターを追加します。パラメーター値はパーセンテージエンコードされます。
例:
uses core.http as client;
...
begin
var request := client.createRequest('ebx-1');
client.addPath(request,'book');
client.addParameter(request,'status','sold');
...
end
パラメーター:
request: リクエスト
parameter: クエリパラメーター
value: パラメーター値
使用可能な場所:
addPath
procedure addPath(request: http\_request, path: string)
リクエストのURLにパスを追加します。このメソッドは指定されたパスをエンコードしないことに注意してください。
例:
uses core.http as client;
...
begin
var request := client.createRequest('ebx-1');
client.addPath(request,'book/findByStatus');
...
end
パラメーター:
request: リクエスト
path: 追加するパス
使用可能な場所:
addSegment
procedure addSegment(request: http\_request, segment: string)
リクエストのURLにセグメントを追加します。指定されたセグメントはパーセンテージエンコードされることに注意してください。
例:
uses core.http as client;
...
begin
var request := client.createRequest('ebx-1');
client.addSegment(request,'search by term');
...
end
パラメーター:
request: リクエスト
segment: 追加するセグメント
使用可能な場所:
createRequest
function createRequest(id: string): http\_request
構成IDで指定されたリクエストを作成します。構成IDが見つからない場合、エラーが発生します。IDはEBX管理の構成テーブルで指定されます。
例:
uses core.http as client;
...
begin
var request := client.createRequest('ebx-1');
...
end
パラメーター:
id: 構成のID
戻り値:
リクエスト
使用可能な場所:
delete
function delete(request: http\_request): http\_response
DELETEリクエストを送信し、レスポンスを処理します。I/Oエラーが発生した場合、またはリクエストがタイムアウトした場合、エラーが発生します。返されるレスポンスには、ステータス、ヘッダー、および場合によってはボディが含まれます。
例:
uses core.http as client;
...
begin
var request := client.createRequest('ebx-1');
client.addPath(request,'book');
client.addPath(request,'B5253');
var response := client.delete(request);
...
end
パラメーター:
request: リクエスト
戻り値:
受信したレスポンス
使用可能な場所:
get
function get(request: http\_request): http\_response
GETリクエストを送信し、レスポンスを処理します。I/Oエラーが発生した場合、またはリクエストがタイムアウトした場合、エラーが発生します。返されるレスポンスには、ステータス、ヘッダー、およびボディが含まれます。
例:
uses core.http as client;
...
begin
var request := client.createRequest('ebx-1');
client.setHeader(request,'Content-Type','application/json');
var response := client.get(request);
...
end
パラメーター:
request: リクエスト
戻り値:
受信したレスポンス
使用可能な場所:
getConfigNames
function getConfigNames(request: http\_request): list<string>
REST構成で指定されたキー名を取得します。キー名が見つからない場合、空のリストを返します。
例:
uses core.http as client;
...
begin
var request := client.createRequest('ebx-1');
var keyNames := client.getConfigNames(request);
var keyValue := client.getConfigValue(request,keyNames[0]);
...
end
パラメーター:
request: リクエスト
戻り値:
文字列値
使用可能な場所:
getConfigValue
function getConfigValue(request: http\_request, name: string): string
REST構成で指定された特定のキー名の値を取得します。シークレットキーの値は常に復号化されます。キー名が見つからない場合、nullを返します。指定されたキーの値が復号化できない場合、エラーが発生します。
例:
uses core.http as client;
...
begin
var request := client.createRequest('ebx-1');
var accessKey := client.getConfigValue(request,'EBX');
if not isNull(accessKey) then
begin
client.setHeader(request,'Authorization','EBX '| accessKey);
...
end
end
パラメーター:
request: リクエスト
戻り値:
文字列値
使用可能な場所:
getHeaderFirstValue
function getHeaderFirstValue(response: http\_response, headerName: string): string
指定された名前のヘッダーの最初のレスポンスヘッダー値を返します。ヘッダー名が見つからない場合、nullを返します。
例:
uses core.http as client;
...
begin
var request := client.createRequest('ebx-1');
var response := client.get(request);
var encoding := client.getHeaderFirstValue(response,'content-encoding');
...
end
パラメーター:
response: レスポンス
headerName: ヘッダー名
戻り値:
ヘッダー値
使用可能な場所:
getHeaderNames
function getHeaderNames(response: http\_response): list<string>
レスポンスヘッダー名を返します。名前付きヘッダーが見つからない場合、空のリストを返します。
例:
uses core.http as client;
...
begin
var request := client.createRequest('ebx-1');
var response := client.get(request);
var headerNames := client.getHeaderNames(response);
...
end
パラメーター:
response: レスポンス
戻り値:
ヘッダー名のリスト
使用可能な場所:
getHeaderValues
function getHeaderValues(response: http\_response, headerName: string): list<string>
指定された名前のヘッダーのレスポンスヘッダー値を返します。名前が見つからない場合、空のリストを返します。
例:
uses core.http as client;
...
begin
var request := client.createRequest('ebx-1');
var response := client.get(request);
var allowedMethod := client.getHeaderValues(response,'access-control-allow-methods');
...
end
パラメーター:
response: レスポンス
headerName: ヘッダー名
戻り値:
ヘッダー値のリスト
使用可能な場所:
getJsonBody
function getJsonBody(response: http\_response): json\_value
ボディレスポンスのJSON値を返します。レスポンスにボディがない場合、nullを返します。
例:
uses core.http as client;
...
begin
var request := client.createRequest('ebx-1');
var response := client.get(request);
if (client.hasBody(response)) then
begin
var body:=client.getJsonBody(response).asObject;
var id := json.getString(body, 'id');
...
end
end
パラメーター:
response: レスポンス
戻り値:
ボディレスポンスのJSON値。レスポンスのボディが有効なJSONでない場合、またはnullの場合、nullを返します。
使用可能な場所:
getRequestUrl
function getRequestUrl(request: http\_request): string
リクエストのURLを取得します。
例:
uses core.http as client;
...
begin
var request := client.createRequest('ebx-1');
client.addPath(request,'author');
var url:=client.getRequestUrl(response);
end
パラメーター:
request: リクエスト
戻り値:
URL
使用可能な場所:
getResponseUrl
function getResponseUrl(response: http\_response): string
レスポンスのURLを取得します。
例:
uses core.http as client;
...
begin
var request := client.createRequest('ebx-1');
client.addPath(request,'publisher');
var response := client.get(request);
var url:=client.getResponseUrl(response);
end
パラメーター:
response: レスポンス
戻り値:
URL
使用可能な場所:
getStatusCode
function getStatusCode(response: http\_response): int
レスポンスのステータスコードを返します。
例:
uses core.http as client;
...
begin
var request := client.createRequest('ebx-1');
client.addPath(request,'book');
var response := client.get(request);
var status:=client.getStatusCode(response);
if (status = 200) then
begin
...
end
end
パラメーター:
response: レスポンス
戻り値:
ステータスコード
使用可能な場所:
getStringBody
function getStringBody(response: http\_response): string
レスポンスの文字列ボディを返します。レスポンスにボディがない場合、nullを返します。
例:
uses core.http as client;
...
begin
var request := client.createRequest('ebx-1');
var response := client.get(request);
if (client.hasBody(response)) then
begin
var body:=client.getStringBody(response);
...
end
end
パラメーター:
response: レスポンス
戻り値:
レスポンスの文字列ボディ
使用可能な場所:
hasBody
function hasBody(response: http\_response): boolean
レスポンスにボディがある場合、trueを返します。
例:
uses core.http as client;
...
begin
var request := client.createRequest('ebx-1');
var response := client.get(request);
if (client.hasBody(response)) then
begin
...
end
end
パラメーター:
response: レスポンス
戻り値:
レスポンスボディがある場合はtrue、それ以外の場合はfalse
使用可能な場所:
post
function post(request: http\_request, body: string): http\_response
指定されたボディを設定してPOSTリクエストを送信し、レスポンスを処理します。I/Oエラーが発生した場合、またはリクエストがタイムアウトした場合、エラーが発生します。返されるレスポンスには、ステータス、ヘッダー、および場合によってはボディが含まれます。
例:
uses core.http as client;
...
begin
var request := client.createRequest('ebx-1');
client.addPath(request,'book');
var body:='{ "content": { "id": "B5253",
"title": "Da Vinci Code"
}
}';
var response := client.post(request,body);
...
end
パラメーター:
request: リクエスト
body: ボディ
戻り値:
受信したレスポンス
使用可能な場所:
put
function put(request: http\_request, body: string): http\_response
指定されたボディを設定してPUTリクエストを送信し、レスポンスを処理します。I/Oエラーが発生した場合、またはリクエストがタイムアウトした場合、エラーが発生します。返されるレスポンスには、ステータス、ヘッダー、および場合によってはボディが含まれます。
例:
uses core.http as client;
...
begin
var request := client.createRequest('ebx-1');
client.addPath(request,'book');
client.addPath(request,'B5253');
var body:='{ "content": {
"author": "Dan Brown"
}
}';
var response := client.put(request,body);
...
end
パラメーター:
request: リクエスト
body: ボディ
戻り値:
受信したレスポンス
使用可能な場所:
setHeader
procedure setHeader(request: http\_request, headerField: string, value: string)
リクエストのヘッダーフィールドに値を設定します。
例:
uses core.http as client;
...
begin
var request := client.createRequest('ebx-1');
client.setHeader(request,'Content-Type','application/json');
...
end
パラメーター:
request: リクエスト
headerField: ヘッダーフィールド
value: 値
使用可能な場所:
setTimeout
procedure setTimeout(request: http\_request,timeout: int)
リクエストにミリ秒単位でタイムアウトを設定します。ebxプロパティファイルで定義されているデフォルト値よりも小さい必要があります。そうでない場合、無視されます。タイムアウトのデフォルト値は、コンテキスト(トリガーまたはワークフロー)によって異なります。
例:
uses core.http as client;
...
begin
var request := client.createRequest('ebx-1');
client.setTimeout(request,900);
...
end
パラメーター:
request: リクエスト
timeout: タイムアウト
使用可能な場所: