Datasnap.DSService.TDSRESTService

提供: RAD Studio API Documentation
移動先: 案内検索

Datasnap.DSService.TDSServiceDatasnap.DSService.TDSRequestFilterManagerSystem.TObjectTDSRESTService

Delphi

TDSRESTService = class(TDSService)

C++

class PASCALIMPLEMENTATION TDSRESTService : public TDSService

プロパティ

種類 可視性 ソース ユニット
class public
Datasnap.DSService.pas
Datasnap.DSService.hpp
Datasnap.DSService Datasnap.DSService


説明

REST サービスを実装したものです。

要求メソッドは CRUD 操作と次のようにマッピングされます。

GET: /MethodClass/MethodName/inputParameter[/inputParameter]*
JSON 要求: {"execute":{"MethodClass.MethodName":[inputParameter[,inputParameter]*]}}
PUT: /MethodClass/MethodName/inputParameter[/inputparameter]* and [content]
JSON 要求: {"execute":{"MethodClass.acceptMethodName":[inputParameter[,inputParameter]*[,JSONValue]}}
POST: /MethodClass/MethodName/inputParameter[/inputparameter]* and [content]
JSON 要求: {"execute":{"MethodClass.updateMethodName":[inputParameter[,inputParameter]*[,JSONValue]}}
DELETE: /MethodClass/MethodName/inputParameter[/inputParameter]*
JSON 要求: {"execute":{"MethodClass.cancelMethodName":[inputParameter[,inputParameter]*]}}

たとえばデータベース接続を管理する場合は、次のように使用することができます。

PUT メッセージ http://mySite.com/datasnap/rest/Test/Connection/MSSQL1 は次の JSON 要求になります。
{"execute":{"Test.acceptConnection":["MSSQL1"]}}
POST メッセージ http://mySite.com/datasnap/rest/Test/Connection/MSSQL2 は次の JSON 要求になります。
{"execute":{"Test.updateConnection":["MSSQL2"]}}
GET メッセージ http://mySite.com/datasnap/rest/Test/Connection は次の JSON 要求になります。
{"execute":{"Test.Connection":[]}}
DELETE メッセージ http://mySite.com/datasnap/rest/Test/Connection は次の JSON 要求になります。
{"execute":{"Test.cancelConnection":[]}}

これらのメソッドは次のように実装することができます。

  • acceptConnection では、"MSSQL1" という接続を開きます。
  • updateConnection では、既存の接続があればそれを閉じ、新しい接続を開きます。
  • Connection では、現在開いている接続の名前を返します。
  • cancelConnection では、既存の接続があればそれを閉じます。

出力パラメータまたは戻り値パラメータが定義されている場合は、JSON 応答に含められます。

{
  "result": [
    parameterValue1,
    parameterValue2,
    // …
  ]
}

サーバーが例外を送出した場合、JSON 応答は次のようになります。

{
    "error": "Error message."
}

関連項目