$singleton
共有シングルトンの公開関数 は、REST で直接呼び出すことができます。
Singleton functions are called in POST or GET requests with the $singleton
command and without ()
. たとえば、VehicleFactory
共有シングルトンクラスに buildVehicle()
関数を定義した場合、次のリクエストで呼び出すことができます:
/rest/$singleton/VehicleFactory/buildVehicle
POSTリクエストのボディに関数に渡す引数を含めます: ["truck"]
この呼び出しは、4Dランゲージでは次のステートメントに相当します:
$singleton:=cs.VehicleFactory.me.buildVehicle("truck")
RESTリクエストから直接呼び出すことができるのは、exposed
キーワード が付いた関数のみです。
関数の呼び出し
Singleton functions can be called using REST POST or GET requests.
シンタックスは次の通りです:
POST request
/rest/$singleton/SingletonClass/SingletonClassFunction
with data in the body of the POST request: ["myparam"]
GET request
/rest/$singleton/SingletonClass/SingletonClassFunction?$params='["myparam"]'
The SingletonClassFunction()
function must have been declared with the onHttpGet
keyword to be callable with GET
(see Function configuration).
プロジェクトがコンパイル済みモードで実行される場合、RESTサーバーは常にプリエンプティブプロセスを使用するため、RESTリクエストから呼び出されるすべての 4Dコードは スレッドセーフでなければなりません (プリエンプティブプロセスを使用 の設定値 は、RESTサーバーによって無視されます)。
特定のシングルトン関数の呼び出しを制限するには、roles.json ファイルで適切な権限を設定することができます。
引数
シングルトン関数に引数を渡すことができます。 サーバーサイドでこれらの引数は、シングルトンクラス関数の 宣言されたパラメーター に受け渡されます。
シングルトン関数に引数を渡す方法は、ORDAクラスの関数に引数を渡すのとまったく同じです。 詳細については、"クラス関数の呼び出し" ページの 引数 の段落 を参照ください。
例題
公開関数を持つ、シンプルな共有シングルトンを作成します:
// class mySingleton
shared singleton Class constructor()
exposed Function sayHello ($value : Text)
return "Hello "+$value
$catalog
コマ ンドを呼び出すと、mySingleton
クラスと sayHello
関数がリストされます。
次のリクエストを実行します:
POST /rest/$singleton/mySingleton/sayHello
リクエストのボディ: ["John"]
レスポンス
{
"result": "Hello John"
}