2022/09/9

SalesforceでのPostmanの使い方について実践しながら紹介

 
  

Postmanとは?

他のシステムとの連携エラーやAPIの検証などでAPI接続ツールとしてPostmanは利用されています。 あまりよく知らずに使用している人も多いですが、その使い方も実践を交えながら解説していきます。

PostmanはAPI開発のためのツールです

Postman(ポストマン)はPostman社が提供しているAPI開発コラボレーションプラットフォームです。 使い方も簡単で、リクエストから認証、テストなどの機能が搭載されていてAPI開発を素早く正確に実現できるので作業効率が飛躍的に上がります。 特に便利なのが開発したAPIをテストできる機能です。APIのURLを入力してそこに入るパラメーターを設定するだけです。 手動でのテストと比べると使い方も簡単で、GETやPOSTのテストができます。APIおよびアプリケーション開発に貢献できるプラットフォームです。 Postmanのプランは4つあるのでプロジェクトの規模に合ったものを選びましょう。 (2021年1月時点) 規模の小さいチームや個人の場合はFreeプランで十分でしょう。 ただし、SSOを使用してユーザーを認証、アクセスや権限を承認したり、組織に合わせたカスタム契約が出来ないなど、プランによって異なるので出来ないことも合わせて公式サイトをチェックしましょう。

Postmanのメリット

Postmanを使った場合のメリットについて紹介します。 HTMLのリクエストを完全に制限することが可能です。ファイルのアップロード制限もなく、ヘッダーとパラメーターを設定し、任意のコンテンツタイプを使用できます。 他にも複数の環境切り替えが可能です。環境を切り替えると、変数がその環境固有の値に更新されます。Freeプランを使用している場合はワークスペースをインポート、エクスポートすることでリクエストを共同で編集できます。 JavaScriptを使用して実行後のスクリプトを作成することにより、処理を自動化できるので環境変数の設定に使用できます。 プロジェクト全体でAPIリクエストを迅速に設計して再利用するのに役立ちますし、もう一度使用可能なリクエストが増えたらオープンソースのSalesforceAPIコレクションを作成しましょう。

スクリプト

リクエストを送信する前とレスポンスを受信した後にスクリプトは実行されます。 以下の順で実行されます。 REQUEST (pre-request script) ↓ REQUEST ↓ RESPONSE ↓ REQUEST (test script) [Pre-request Script]タブのテキストボックスでリクエスト前に実行したいスクリプトの設定をして、レスポンス受信後のスクリプトを[Test]タブのテキストボックスに設定します。 コードは以下のようになります。

pm.test('Success!' function() {
  pm.response.to_have.status(200);
})
pm.Variables.get('myVar');

変数

変数はデータの記号表現で、手動で入力しなくても値にアクセスできます。 複数の場所で同じ値を使用している場合など、詳細の一部を抽象化することにより、リクエストをより柔軟に読みやすくします。 Postmanは5つの変数の種類があるのでタスクによって使い分けしましょう。 変数の内容は以下の通りです。 global(グローバル)変数は、コレクション、リクエスト、テストスクリプトや環境間でデータにアクセスできます。グローバル変数はワークスペース全体で使用できるので扱いには注意してください。 collection(コレクション)変数はコレクション内のリクエスト全体で使用できます。環境に依存しないようになっています。 environment(環境)変数はローカル環境、テスト、本番など様々な環境に合わせて処理を調整できます。一度にアクティブにできる環境は一つなので覚えておきましょう。 data(データ)変数は外部のCSVファイルとJSONファイルから取得されます。NewmanまたはCollectionRunnerを介してコレクションを実行する時に使用できるデータセットを定義します。 local(ローカル)変数は一時的に利用するもので、リクエストスクリプトでのみアクセスできるようになっています。 こちらの5つの関数が用意されていて、各変数毎に参照できるスコープが異なっています。 変数名が同じものを登録している場合はスコープが狭い変数値に設定されます。

SalesforceでのPostmanの使い方

Salesforceは、沢山のサードパーティーシステムを利用できるようにする豊富なAPIセットを公開しています。これらのAPIは全て完全に文書化されているので、特定の組織や複数の組織で素早くSalesforceAPIを簡単に探索及びテストしたい場合にPostmanが活躍します。 タイトルにもあるようにここで実践するのは「PostmanのAPIリクエストをSalesforceの環境ごとに切り替えるように作る」なので、変数のみ使用してSalesforceのログイン環境依存情報を切り替えていきます。 では早速、SalesforceでのPostmanの使い方を紹介していきます。

Salesforceのログイン情報を環境変数に設定する

Salesforceの環境ごとにユーザーIDとパスワードの切り替えができるように変数を定義します。「Upgrade」の左隣にあるアイコンの一番左端の歯車のマークを押して、環境変数管理の画面である[MANAGE ENVIRONMENTS]画面が表示されます。 画面端に表示されている[Add]から、[ADD ENVIRONMENTS]画面に遷移するので、下記の表に記載されている変数設定を画面に設定します。 項目とPW項目の[INITIAL VALUE]項目に自分のSalesforceのユーザーIDとパスワードを入力し保存します。
変数名 説明 初期設定
ENV 本版=login or sandbox=test login or test
UID SalesforceユーザーID your id
PW パスワード ******
SID アクセストークン ブランク
URL インスタンスURL ブランク

ログインリクエストの作成をする

ログインエンドポイントのSOAPを使って実行していきます。 HTTPメソッド : POST 送信URL : https://{{ENV}}.salesforce.com/service/Soap/u/45.0 {{ENV}}上記で設定をした環境変数の値が、実行時に設定されます。 [Headers]タブは、 Content-Typeにtext/xml;charset-utf8を入力して、その下のSOAPActionはloginと設定します。 それが完了したらリクエストで送信するBodyを設定していきます。 [Body]タブを選択し、データの種類を[raw]を選択して下記のソースを記述します。 環境変数で設定したSalesforceのユーザーIDとパスワードが、XMLの{{UID}}と{{PW}}の変数に設定されます。

<?xml version=""1.0"" encoding=""UTF-8""?>
<env:Envelope
   xmlns:env=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema""
   xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance\"">
<env:Body>
<m:login xmlns:m=""urn:partner.soap.sforce.com"" xmlns:sobj=""urn:sobject.partner.soap.sforce.com"">
<m:username>{{UID}}</m:username>
<m:password>{{PW}}</m:password>
</m:login>
</env:Body>
</env:Envelope>
次は、リクエスト実行後に、レスポンスのBodyからインスタンス変数とアクセストークンを環境変数に設定するのでスクリプトを設定していきます。 [Test]タブを選択し、レスポンス受信後に設定するスクリプトを設定するので以下のコードを記述します。

var ok = responseCode.code === 200;
tests[""Successful request""] = ok;
if(ok) {
   var json0bject = xml2Json(responseBody);
   var sid = jsonObject[""soapenv:Envelope""][""soapenv:Body""].loginResponse.result.sessionId;
  var serverurl = jsonObject[""soapenv:Envelope""][""soapenv:Body""].loginResponse.result.serverUrl.match(/^[httpsfile]+:\/{2,3}([0-9a-z\.\-:]+?):?[0-9]*?\//i)[0].slice(0,-1);
console.log(sid);
console.log(serverurl);
pm.environment.set(""SID"",sid);
pm.environment.set(""URL"",serverurl);
}
これで環境依存の値を環境変数に設定する処理は設定完了です。

APIリクエストの作成をする

ログインリクエストの設定が完了したので、実際に環境変数を使って切り替えができるリクエストを説明していきます。 先ほどのログインリクエストと同じ手順で、APIの一覧情報を取得するAPIリクエストを作成して下さい。エンドポイント、HTTPメソッドの設定は以下の通りです。 HTTPメソッド:GET エンドポイント:{{URL}}/service/data/data/v.45.0/ {{URL}}にログインのレスポンスが受信設定をした際に環境変数の値が実行時に設定されます。 [Authorization]タブの承認情報は下記の値を設定します。 AuthorizationType:BearerToken TOKEN:{{SID}} {{SID}}環境変数の値が設定されたものが、ログインのレスポンス受信の実行時に設定されます。 以上で設定は完了です。念のため動作チェックも行いましょう。

SalesforceでPostmanを活用しよう

今回はSalesforceで使うと便利なPostmanの概要と使い方について簡単な実践を交えて紹介しました。Postmanを使うとAPIの開発効率が上がるのでぜひ活用してみましょう。]]>

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】