最近のアクセス:
REST サービスとして公開されているビジネスコンポーネントからデータを取得する方法

このドキュメントでは、GeneXus で REST Web サービスとして公開されているビジネスコンポーネントからデータを取得する方法について説明します。
最初に、基本的な手引きを示します:

1.GeneXus で REST サービスが呼び出される方法

HttpClient データタイプを使用します。

2.データの取得に使用する HTTP メソッド

データの取得に使用する HTTP メソッドは GET HTTP メソッドです。

3.Web サービスで公開され、利用できる情報

主キーを指定してレコードを取得できます。
ただし、GeneXus X Evolution 2 以降では、テーブルの全データの取得 (全レコードの GET。例: <ベース url>/rest/Products)、特定の外部キーからのデータ取得 (<ベース url>/rest/Invoices?ClientId=234)、特定の名称項目属性のデータ取得 (例: <ベース url>/rest/Products?ProductName=SmartPhone) はできません。REST ビジネスコンポーネントによるこの情報への制約は、セキュリティ上の理由で定められています。

4.GET を実行する URL 形式

<サーバーの URI>/rest/<モジュール>/<BC 名>/<パラメーター 1>,<パラメーター 2>,..,<パラメーター N>
入力値の説明: 
<パラメーター 1>、<パラメーター 2>、..、<パラメーター N>
      複合主キーです。

次の図は、REST Web サービスとして公開されている Invoice ビジネスコンポーネントのトランザクションを示しています:
イメージ:30703.png
この例で、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 サービスとしてのビジネスコンポーネント


サブページ
Created: 17/05/30 19:02 by Admin Last update: 24/03/25 23:57 by Admin
カテゴリ
Powered by GXwiki 3.0