最近のアクセス:
REST としてのプロシージャー: プロシージャーへの入力として Blob データを送信する

警告: ここでは、別のナレッジベースでプロシージャーとして定義された REST サービスに Blob をアップロードする方法について説明します。同じナレッジベースのプロシージャーを使用して Blob (画像、ビデオ、オーディオ) をアップロードするには、Call コマンドを使用して、パラメーターとして項目属性または変数を渡します。

これは次の例と同じです:「REST としてのプロシージャー: プロシージャーへの入力として SDT を使用する」。加えて、REST Web サービスプロシージャーへの入力として Blob 変数データタイプを送信する方法を示しています。
この例では Customer テーブルに顧客を追加します。テーブルには顧客の写真を表す Blob フィールドがあります。
AddCustomer プロシージャーは、次の例と同じです:「REST としてのプロシージャー: プロシージャーへの入力として SDT を使用する」。
クライアントユーザーには、次の 2 つの HTTP POST を実行するという特殊性があります:
1.<オブジェクト名>/gxobject (Web アプリケーション URL 配下) への HTTP POST 時に、HTTP リクエストにファイル (Blob) を添付します。ここで返される参照を使用して、Blob をデータベーステーブルに挿入します。
2.REST プロシージャーへの HTTP POST を実行して、処理する情報を含む JSON 要求を送信します。
POST /gxobject
Host: example.com
Content-Length: 808
Content-Type: image/jpg
 [ file content goes there ] . -> This must be Format = Binary
GeneXus クライアントのソースコード:
&ImagePath = MySampleImage.Link()
&httpclient.Host = &host //&httpclient は HTTPClient 変数データタイプ
&httpclient.Port = &port
&httpclient.BaseUrl = &urlbase + '/rest/' //例: '/webappname/rest/'  

&httpclient.AddHeader(!'Content-type', !'application/jpg')
&httpclient.AddFile(&ImagePath)
&httpclient.Execute(!'POST', !'AddCustomer/gxobject')
 
&GXObjectUploadResponse.FromJson(&httpclient.ToString()) //&GXObjectUploadResponse は、以下で定義する GXObjectUploadResponse データタイプに基づく (*)

&customersdt.CustomerId= &customerId
&customersdt.CustomerName = &customerName
&customersdt.Customerbirthdate = &customerbirthdate
&customersdt.CustomerPayDate = &customerPayDate
&customersdt.CustomerPhoto = &GXObjectUploadResponse.object_id 

&body = Format(!'{"Customersdt":%1 }', &customersdt.ToJson())

&httpclient.AddHeader(!'Content-type', !'application/json')
&httpclient.AddString(&body)

&httpclient.Execute(!'POST', !'AddCustomer')
(*) GXObjectUploadResponse データタイプ:
イメージ:52152.png
最後に、HTTP クライアントの応答を処理します。
: GeneXus では、GeneXus で生成されたかどうかにかかわらず、REST サービスを消費するための OpenAPI インポートツールが提供されています。

サンプルはこちらからダウンロードできます:

GXObjectUploadTransaction

参考情報

GeneXus の REST Web サービス


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