【Salesforce】Rest APIのPOSTで引数が多い場合

【Salesforce】Rest APIのPOSTで引数が多い場合

SalesforceのRest APIのPOST処理を書いた場合、引数はリクエストのJSONに対応したものを書きますね。

たとえば、このようなJSONの場合は

{
  "arg1":"val1",
  "arg2":"val2"  
}

このようなメソッドを用意することになると思います。

@HttpPost
global static String doPost(String arg1, String arg2) {

    return null;
}

引数が少ない場合はこれで良いのですが、数が増えてくると面倒だったりします。

そんなとき、RestRequestを使うことでリクエストのbodyにセットされた値を持ってくることができます。

@HttpPost
global static String doPost() {
    
    RestRequest req;
    String strBody;

    // HTTPリクエストを取得する
    req = RestContext.request;
    // bodyを取得し、文字列に変換する
    strBody = req.requestBody.toString();

    // 処理

    return null;
}

取得した文字列は送信されたJSONそのままの文字列です。

そのため、取得した文字列を利用するには少し工夫をしなければいけません。

RestRequest
https://developer.salesforce.com/docs/atlas.ja-jp.204.0.apexcode.meta/apexcode/apex_methods_system_restrequest.htm#apex_System_RestRequest_requestBody

 

No comments.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です