シングルトンのRESTとQodlyサポート

4D 20 R5 では、シングルトンが導入されました。そして、4D 20 R6 では、REST 呼び出しを通して、共有シングルトンの公開関数を直接呼び出すことができるようになりました。同様に、Qodly Pagesのイベントで共有シングルトンの公開された関数を使用することができます。これらの新機能をさらに掘り下げてみましょう。

HDI RESTとQodlyによるシングルトンのサポート

ここでは、特定のデータクラスと紐付いていない RESTサービスを作りたい場合を考えます。

簡単です!

まず、REST で呼び出せる、公開された関数を持つ共有シングルトンを作成しましょう:

// mySingleton クラス

shared singleton Class constructor()
	
exposed Function myFonction($value : Integer)
	// コード

次にカタログを確認するため、myServer/rest/$catalog/$all によって返される JSON をチェックしてみましょう。先ほど作成したシングルトンが、その公開された関数とともに返されてるのが見てとれます:

"singletons": [
    {
      "name": "mySingleton",
      "methods": [
        {
          "name": "myFonction",
          "allowedOnHTTPGET": false,
          "exposed": true
        }
      ]
    }
  ],

これで、myServer/rest/$singleton/mySingleton/myFonction に RESTコールをおこなって、公開関数を直接実行できるようになりました。
もちろん、roles.jsonファイルで権限を設定することで、特定の関数やシングルトンへの呼び出しを制限することもできます。

Qodly の場合、話はさらに簡単です。イベントを設定する際、他のデータクラスの公開関数と同じように、共有シングルトンが公開する関数を選択することができます:

Qodly Studio では共有シングルトンがカタログ内に表示され、その公開関数をイベントに割り当てることができます。

また、権限画面でシングルトンやその公開関数を実行する権限を設定できます:

blank

Qodly Studio のロールと権限のページでは、シングルトンのアクセス権を設定することができます。

シングルトンで実行できることの簡単な例題は、シングルトンのHDI をご確認ください。

これら 2つの機能のサポートで、シングルトンが使いやすくなれば幸いです。

ご意見やご感想がありましたら、遠慮なくフォーラムにお寄せください!

Nicolas Brachfogel
- プロダクトオーナー & シニアデベロッパー - Nicolas Brachfogelは、2017年にシニアデベロッパーとして4Dに入社しました(4D Serverとネットワークを担当)。Apple Siliconのリリースを管理するプロダクトオーナーとして、ユーザーストーリーを書いて機能仕様に落とし込み、機能実装が顧客のニーズを満たしているかを確認する役割を担っています。Institut Supérieur d'Informatique Appliquée (INSIA) を卒業した Nicolas は、2001年にソフトウェア開発者としてのキャリアをスタートさせました。JavaとC++で数年間コーディングした後、ゲーム会社のクライアント・サーバー開発を専門に担当。サーバー開発者/アーキテクトとして、多くのゲーム(Dofus Arena、Drakerz、Trivial Pursuit Go!)のサーバーアーキテクチャに携わり、成功を収めてきました。