OutGoingMessage
4D.OutGoingMessage
クラスを使うと、アプリケーションの関数がREST リクエスト に応答して返すメッセージを作成することができます。 レスポンスが4D.OutGoingMessage
型であった場合、REST サーバーはオブジェクトを返すのではなく、OutgoingMessage
クラスのオブジェクトインスタンスを返します。
一般的に、このクラスは、onHttpGet
キーワードで宣言され、HTTP GET リクエストを処理するように設計された関数の中で使用することができます。 このようなリクエストは、例えば、ファイルのダウンロード、画像の生成、ダウンロードなどの機能を実装するためや、ブラウザを介して任意のコンテンツタイプを受信するために使用されます。
このクラアスのインスタンスは4D Server 上にビルドされ、4D REST サーバー によってのみブラウザに送信することができます。 このクラスを使用することで、HTTP 以外のテクノロジー(例: モバイルなど)を使用することができます。
履歴
リリース | 内容 |
---|---|
20 R7 | クラスを追加 |
例題
この例題では、getFile()
関数はDatastore クラス に実装されており、REST リクエストによって呼び出すことができます。 ここでの目的は、testFile.pdf ファイルをリクエストへのレスポンスとして返すことです:
Class extends DataStoreImplementation
exposed onHTTPGet Function getFile() : 4D.OutgoingMessage
var $result:=4D.OutgoingMessage.new()
var $file:=File("/RESOURCES/testFile.pdf")
$result.setBody($file.getContent()) // これはバイナリーのコンテンツ
$result.setHeader("Content-Type"; "application/pdf")
return $result
OutGoingMessage Object
4D.OutGoingMessage objects provide the following properties and functions:
body : any the outgoing message body |
headers : Object the current headers of the outgoing message as key/value pairs |
.setBody( body : any ) sets the outgoing message body |
.setHeader( key : Text ; value : Text ) sets the outgoing message header key with the provided value |
.setStatus( status : Integer ) sets the status property with the given status |
status : Integer the current status of the outgoing message |
A 4D.OutGoingMessage object is a non-sharable object.
.body
body : any
説明
The .body
property contains the outgoing message body. The following data types are supported in the .body
property:
- text
- blob
- object
- image
The .body
property is read-write.
You can also set the .body
property using the setBody()
function, in which case the content-type
header is automatically set.
.headers
headers : Object
説明
The .headers
property contains the current headers of the outgoing message as key/value pairs.
The .headers
property is read-only. To set a header, use the setHeader()
function.
.setBody()
.setBody( body : any )
引数 | 型 | 説明 | |
---|---|---|---|
body | any | -> | Body of the outgoing message |
説明
The .setBody()
function sets the outgoing message body.
The following data types are supported in the body:
- Text
- BLOB
- Object
- ピクチャー
When this function is used, the content-type header is automatically set depending on the body type:
- Content-Type:text/plain if the body is a Text
- Content-Type:application/octet-stream if body is a Blob
- Content-Type:application/json if body is an Object
- Content-Type:image/jpeg, image/gif... if body is an Image
If body is not of a supported value type, an error is returned.
.setHeader()
.setHeader( key : Text ; value : Text )
引数 | 型 | 説明 | |
---|---|---|---|
key | Text | -> | Header property to set |
value | Text | -> | Value of the header property |
説明
The .setHeader()
function sets the outgoing message header key with the provided value. If both parameters are not Text values, an error is raised.
When returning a 4D.OutGoingMessage object instance, 4D automatically sets some headers (e.g. Set-Cookie
with WASID4D=...
and 4DSID__ProjectName_=....
).
If you set a value for the "Content-Type" header key, make sure you call this function after the call to setBody()
, because setBody()
automatically fills this header. For a list of "Content-Type" header values, please refer to the WEB SEND BLOB
documentation.
.setStatus()
.setStatus( status : Integer )
引数 | 型 | 説明 | |
---|---|---|---|
status | Integer | -> | Status to set |
説明
The .setStatus()
function sets the status
property with the given status.
If status is not an integer value, an error is raised.
For a list of HTTP status codes, please refer the HTTP status code list on Wikipedia.
.status
status : Integer
説明
The .status
property contains the current status of the outgoing message. This property can be set using the setStatus()
function.