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

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

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

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

2.新しいデータの挿入に使用する HTTP メソッド

新しいデータの挿入に使用する HTTP メソッドは HTTP POST メソッドです。

3.呼び出しでパラメーターを渡す方法

ビジネスコンポーネントを使用して新しいデータを挿入する際のパラメーターはすべて (主キーのパラメーターを除き) HTTP リクエストの本文に含める必要があります。メッセージの本文は JSON 形式にし、HTTP GET を実行したときに返されるのと同じビジネスコンポーネント構造が含まれていなければなりません。
適切な形式で本文を組み立てる最も簡単な方法は、ビジネスコンポーネントの構造に基づく Structured Data Type (SDT) オブジェクトを定義し、メソッドを使用して有効な JSON 文字列に設定する方法です。
サービスに対する POST を実行する前に、この JSON 文字列を HTTP リクエストの本文に追加する必要があります。

4.POST を実行する URL 形式

<サーバーの URI>/rest/<モジュール>/<BC 名>/<パラメーター 1>,<パラメーター 2>,..,<パラメーター N>
入力値の説明:
<パラメーター 1>,<パラメーター 2>,..,<パラメーター N>
      複合主キーです。
主キーが自動ナンバリングされる場合は、URL で 0 を使用します。

次の図に示すように、REST Web サービスとして公開されている Product ビジネスコンポーネントのトランザクションを想定します:
イメージ:30705.png
この例では、ProductId が 5 の新しい Product を挿入します。

サンプルコード

次の図に示すように、Product 構造に基づく ProductSDT 構造化データタイプを定義しました:
イメージ:30706.png
コードは次のようになります:
&httpclient.Host= &server
&httpclient.Port = &port
&httpclient.BaseUrl = &urlbase

&productSDT.ProductName = "Samsung Galaxy"
&productSDT.ProductPrice = 22

&httpclient.AddString(&productSDT.ToJson())
&httpclient.AddHeader('content-type','application/json')
&httpclient.Execute('POST','Product/5')

if &httpclient.StatusCode = 201
    msg("Data successfully added")
else
   msg("There was an error retrieving the data: " + &httpclient.StatusCode.ToString())
endif
このサンプルは「File:Sample insert data using a Rest BC」からダウンロードできます。
注:
  • 'content-type:application/json' ヘッダーの追加を忘れないようにします。
  • 複数のパラメーターを URL で渡す場合は (複合主キー)、コンマで区切る必要があります。
  • サービス URI が http://localhost/TestRESTFullGX.NetEnvironment/rest/Product の場合、ベース URL は次のようになります: /TestRESTFullGX.NetEnvironment/rest/
  • 呼び出し後、エラー処理を管理するために、HTTP ステータスコードのクエリが行われます。

参考情報

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