このドキュメントでは、
GeneXus で REST Web サービスとして公開されている
ビジネスコンポーネントからデータを取得する方法について説明します。
最初に、基本的な手引きを示します:
HttpClient データタイプを使用します。
データの取得に使用する HTTP メソッドは GET HTTP メソッドです。
主キーを指定してレコードを取得できます。
ただし、
GeneXus X Evolution 2 以降では、テーブルの全データの取得 (全レコードの GET。
例: <ベース url>/rest/Products)、特定の外部キーからのデータ取得 (<ベース url>/rest/Invoices?ClientId=234)、特定の名称項目属性のデータ取得 (例: <ベース url>/rest/Products?ProductName=SmartPhone) はできません。REST ビジネスコンポーネントによるこの情報への制約は、セキュリティ上の理由で定められています。
<サーバーの URI>/rest/<モジュール>/<BC 名>/<パラメーター 1>,<パラメーター 2>,..,<パラメーター N>
入力値の説明:
<パラメーター 1>、<パラメーター 2>、..、<パラメーター N>
複合主キーです。
次の図は、REST Web サービスとして公開されている Invoice ビジネスコンポーネントのトランザクションを示しています:
この例で、InvoiceId=5 の請求書を取得するとします。
&httpclient.Host= &server
&httpclient.Port = &port
&httpclient.BaseUrl = &urlbase
&httpclient.Execute('GET','Invoice/5')
if &httpclient.StatusCode = 200
&result = &httpclient.ToString()
else
msg("There was an error retrieving the data: " + &httpclient.StatusCode.ToString())
endif
このサンプルは「
File:Sample GET data using a Rest BC」からダウンロードできます。
注:
- 複数のパラメーターを URL で渡す場合は、コンマで区切る必要があります。
- サービス URI が http://localhost/TestRESTFullGX.NetEnvironment/rest/Invoice の場合、ベース URL は次のようになります: /TestRESTFullGX.NetEnvironment/rest/
- 呼び出し後、エラー処理を管理するために、HTTP ステータスコードのクエリが行われます。たとえば、データが存在しない場合、次のエラーが発生する可能性があります: {"error":{"code":"404","message":"指定されたキーのデータが見つかりません。"}}
GeneXus の REST Web サービスとしてのビジネスコンポーネント