10

DelphiXE2を使用してDataSnapRESTサービスを記述しています。DataSnapのRESTURIは、厳密にこの形式に従う必要があることに気付きました(ここを参照)。

http://my.site.com/datasnap/rest/URIClassName/URIMethodName[/inputParameter]*

有名な例は、DataSnapサーバーウィザードによって作成されたサンプルメソッドです。

http://my.site.com/datasnap/rest/TServerMethods1/ReverseString/ABC

URIでパラメータを指定する一般的な方法は2つあります。

  1. パスセグメントパラメータ:/ TServerMethods1 / ReverseString / ABC
  2. クエリ文字列パラメータ:/ TServerMethods1 / Customers?name = bill

パスセグメントパラメータURIは、DataSnapRESTによって確実にサポートされます。クエリ文字列パラメーターはDataSnapRESTでもURIをサポートしていますか?

次のRESTURIの例がありますが、現在のDataSnapRESTライブラリで機能させることは不可能のようです。

  1. / Customers / A1234

    IDA1234の顧客オブジェクトを返します

  2. /customers/A1234.xml

    IDA1234の顧客オブジェクトをXML形式で返します

  3. /customers/A1234.json

    IDA1234の顧客オブジェクトをjson形式で返します

  4. /customers/A1234.html

    IDA1234の顧客オブジェクトをhtml形式で返します

  5. / customers?name = Bill

    名前にBillが含まれている顧客のリストを返す

4

2 に答える 2

5

DataSnap を使用してそれを行う方法はわかりませんが、回避する方法はあります。使いやすい URI と DataSnap に必要な URI の両方を簡単にマッピングできるため、URLRewrite と呼ばれるものをこれに有効に使用できます。

IIS では、IIS 7 の標準である URLRewrite モジュールを使用 (有効化) できます。詳細については、公式サイトhttp://www.iis.net/download/urlrewriteを参照してください。

「内部」(Datasnap) URI が暴走しないように、必ずインバウンドURI アウトバウンドURI のルールを作成してください。

Apache でサイトを実行している場合、同様の機能が利用可能であり、.htaccess ファイルを修正する必要があると思いますが、Apache の経験がないため、間違っている可能性があります。

于 2012-05-12T09:43:58.610 に答える