apiを使用してポータルアプリケーションの機能を公開しますか?

複雑なアプリケーションを構築し、大量のポータルライセンスを使用して公開しています。このアプリケーションのユーザーは、Salesforceデータへのアクセスが制限されています。これは、アプリケーションによって制御されます。

このポータルアプリケーションの特定の機能をAPIを介して公開したいと考えています。これを行う最善の方法は何ですか?
(私たちは、通常のsalesforce apiを介して広範なsalesforceアクセス権を与えたくない)。

私たちは非常にカスタムのアクセス方法の設定をしているので、組み込みのsalesfoceアクセス制御を使用すると動作しません。

ベストアンサー

カスタムメソッドを呼び出すことができる独自のAPIインターフェイス(サイト上に公開されているVisualforceページなど)を作成して、データを保護することができます。通常のXMLHttpRequest呼び出しでアクセスできます。

Visualforce

ページ:exportData

{!json}

コントローラ:

public with sharing class exportData {
   //place your member variables here

    public exportData() {
       //Load page parameters and initialize the controller
    }

    public class Results {
       //store the data you want to expose here
        public Boolean success;//indicates success or failure, if applicable.
    }

    public String getJSON() {
        Results result = new Results();
       //Perform your primary logic here
        result.success = true;
        return JSON.serialize(result);
    }
}

この時点で、APIのようにページを呼び出すことができます:

var xml = new XMLHttpRequest();
xml.open('GET','/apex/exportData?param1=value1&param2=value2');
// set parameters, possibly including a session cookie, if applicable
xml.onreadystatechange = stateChangeHandler;
xml.send(null);

stageChangeHandlerのreadyStateが4の場合、ステータス(200にする必要があります)とJSON.parseを使用してリテラル値に変換できるペイロードを確認できます。

カスタムレストAPI

また、@RestResource注釈付きクラスを公開することもできます。セッションは認証されているため、ユーザーはその機能にアクセスするためにプロファイルでクラスを有効にする必要があります。ただし、このメソッドは技術的には、標準のREST
APIにもアクセスできますが、プロファイルで「API有効」を指定する必要があるためです。

データを安全に公開するための方法もあります。これは、開発者が使用するより一般的なアクセス制御のほんの数例です。

コメントする

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