【Salesforce】ApexのAPI バージョンを確認する

【Salesforce】ApexのAPI バージョンを確認する

Apexコードを書く際にあまり気にしていないAPIバージョンですが、たまに必要になって確認することがあります。

しかし、Salesforceの「Spring’18」などのバージョン名を見てAPIバージョンが頭に浮かぶほど頭が良くありません。

調べてみると、WSDLを生成する際にAPIバージョンが表示されるとのこと。

https://developer.salesforce.com/forums/?id=906F0000000BL6vIAG

しかし、Salesforceのバージョン名との対応がされていません。

もう少し調べてみると、REST APIでバージョンを取得するとSalesforceのバージョンも一緒に取得できることが分かりました。

開発者コンソールで実行します。

HTTPRequestを使用するため、リモートサイトの設定を忘れないようにしましょう。

String sessionId;
String endpoint;
HttpRequest req;
HttpResponse res;
HTTP http;
List<Object> jsonMapList;
String consoleLog;

// セッションIdを取得する
sessionId = UserInfo.getSessionId();
// エンドポイント
endpoint = URL.getSalesforceBaseUrl().toExternalForm() + '/services/data/';
// HTTPリクエスト
req = new HttpRequest();
req.setMethod('GET');
req.setEndpoint(endpoint);
req.setHeader('Authorization', ' Bearer ' + sessionId);

// 送信する
http = new HTTP();
res = http.send(req);

// 失敗した場合
if(res.getStatusCode() != 200){
    
    system.debug(res.getBody());
    return;
}

// JSONをMapにする
jsonMapList = (List<Object>)JSON.deserializeUntyped(res.getBody());
// ログに表示する
consoleLog = '';
for(Object obj : jsonMapList){
    
    Map<String, Object> jsonMap;
    List<String> attrList;
    
    // 連結用リスト
    attrList = new List<String>();
    // JSON文字列⇒Map
    jsonMap = (Map<String, Object>)obj;
    for(String key : jsonMap.keySet()){
    
        String attr;
        
        attr = key + ' = ' + String.valueOf(jsonMap.get(key));
        attrList.add(attr);
    }
    
    consoleLog += String.join(attrList, ' / ');
    consoleLog += '\r\n';
}

system.debug('\r\n' + consoleLog);

結果としてはこんな感じです。

APIバージョン

現在はSpring18でAPIバージョンは42.0であることが分かりますね。

No comments.

コメントを残す

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