【Salesforce】REST APIを使って@RestResourceで作成した動作を呼び出す

【Salesforce】REST APIを使って@RestResourceで作成した動作を呼び出す

Salesforceで、RestResourceアノテーションを使用することでREST API用のメソッドを作成することができます。

これにより、Salesforceと外部のシステムの連携を行うことができます。

REST API

簡単に作ってみました。

@RestResource(urlMapping='/SayHello/*')
global with sharing class SayHelloApi {
  
    @HttpGet
    global static String doGet() {

        RestRequest req = RestContext.request;        
        String name = req.params.get('name');
        
        return 'Hello ' + name;
    }
  
    @HttpPost
    global static String doPost(String name) {

        return 'Hello' + name;
    }
}

クラス名や各メソッド名は自由につけられます。

urlMappingはREST APIで呼び出す際に使用されます。

GETの場合はパラメータから、POSTの場合は引数から名前を取得して作成した文字列を返しています。

テストクラスはこんな感じに書くことができます。

@isTest
private class SayHelloApiTest {
    /**
     * Postの確認を行う
     */
    private static testMethod void doPostTest() {

        String result;

        Test.startTest();

        result = SayHelloApi.doPost('MyName');

        Test.stopTest();
        
        system.assertEquals(result, 'Hello MyName');
    }

    /**
     * Getの確認を行う
     */
    private static testMethod void doGetTest() {
    
        String result;
        RestRequest req;
        RestResponse res;

        // リクエストを作成する
        req = new RestRequest();
        req.httpMethod = 'GET';
        req.requestURI = '/services/apexrequest/SayHello/?name=MyName';

        // レスポンスを作成する
        res = new RestResponse();

        // コンテキストを設定する
        RestContext.request = req;
        RestContext.response = res;
        
        Test.startTest();
        
        result = SayHelloApi.doGet();
        
        Test.stopTest();
        
        system.assertEquals(result, 'Hello MyName');
    }
}

GETの場合はリクエストとレスポンスを設定しています。

POSTの場合は普通に呼び出せば良いのでしょうか。

外部から呼び出す場合は事前に認証を行ってから呼び出すことになります。

Salesforceにログインして[設定]>[作成]>[アプリケーション]と進むと、[接続アプリケーション]というものがあるかと思います。

ユーザ名・パスワードによる認証を行う場合はここに設定されている「コンシューマ鍵」や「コンシューマの秘密」という項目と、ログインする際の「ユーザ名」と「パスワード」によって認証を行い、アクセストークンを受け取ります。

そのアクセストークンをHTTPヘッダに設定することで作成したREST API用のメソッドを呼び出すことができます。

OAuth認証

IDとパスワードによる認証

確認の際に楽をするためのツールを作成したので、宜しければご利用ください。

REST APIの動作確認補助ツール

No comments.

コメントを残す

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