You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

GET 以外の要求の多くには、要求本文にコンテンツが含まれています。
例えば、要求本文に含める情報として、自身の要求を使って作成した新入社員の詳細があるとします。
一般的に要求本文は単なるバイトのシーケンスです。Web サービスの場合は、通常は特定の詳細をエンコーディングしたテキストです。このテキストは、URL エンコーディングであったり、値のまとまりを JSON で表現したものである場合もあります。
前のセクションでも触れましたが、XPRIM_HttpRequest の Content プロパティには次のメソッドがあり、要求本文に希望のフォーマットのコンテンツを追加できます。

  • AddUrlEncodedFormValue
  • AddJsonObject
  • AddJsonArray
  • AddString
  • AddFile

IBM i で AddFile を利用する際は、「制限事項」を参照してください。
例 - Web API を利用して新規の社員作成
会社に新規の社員情報を作成する公開 API があったとしましょう。
この URL は次のようなものになります。 http://yourcompany.com/api/hr/employee
この詳細を要求本文に追加する方法を見ていきます。最初の例では、詳細を URL エンコーディング形式の値として追加する方法が、そして、2 つ目の例では、コンテンツを JSON 文字列として追加する方法が示されています。
社員詳細を URL エンコーディング形式の値として追加
Define_Com Class(#XPRIM_HttpRequest) Name(#Req)
#Req.Content.AddUrlEncodedFormValue Name('givenName') Value(#EmpGivenName)
#Req.Content.AddUrlEncodedFormValue Name('lastName') Value(#EmpLastName)​​
#Req.Content.AddUrlEncodedFormValue Name('address') Value(#EmpAddress)

  • 要求の実行 (POST 動詞)
    #Req.DoPost Url('http://yourcompany.com/api/hr/employee')
    社員詳細を JSON として追加
    Define_Com Class(#XPRIM_HttpRequest) Name(#Req)
    Define_Com Class(#XPRIM_JsonObject) Name(#JsonObject)
  • JSON オブジェクトの構築
    #JsonObject.InsertString('givenName' #EmpGivenName)
    #JsonObject.InsertString('lastName' #EmpLastName)
    #JsonObject.InsertString('address' #EmpAddress)
  • 構築した JSON を要求本文に追加
    #Req.Content.AddJsonObject(#JsonObject)
  • 要求の実行 (POST 動詞)
    #Req.DoPost Url('http://yourcompany.com/api/hr/employee')
    次は: 要求本文用の JSON データの構築
  • No labels