この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

Apex サーバ側コントローラからデータを返す

return ステートメントを使用して、サーバ側コントローラからクライアント側コントローラに結果を返します。結果データは、JSON 形式に逐次化できる必要があります。
返されるデータ型には次のいずれかを使用できます。

Apex オブジェクトを返す

次に、カスタム Apex オブジェクトのコレクションを返すコントローラの例を示します。
1public with sharing class SimpleAccountController {
2    
3    @AuraEnabled
4    public static List<SimpleAccount> getAccounts() {
5
6        // Perform isAccessible() check here
7		
8        // SimpleAccount is a simple "wrapper" Apex class for transport
9        List<SimpleAccount> simpleAccounts = new List<SimpleAccount>();
10
11        List<Account> accounts = [SELECT Id, Name, Phone FROM Account LIMIT 5];
12        for (Account acct : accounts) {
13            simpleAccounts.add(new SimpleAccount(acct.Id, acct.Name, acct.Phone));
14        }
15        
16        return simpleAccounts;
17    }
18}

サーバ側アクションから Apex クラスのインスタンスが返されると、インスタンスはフレームワークによって JSON に逐次化されます。@AuraEnabled でアノテーションされた public インスタンスのプロパティとメソッドの値のみが逐次化されて返されます。

たとえば、取引先レコードのいくつかの詳細を含む簡単な「ラッパー」Apex クラスを次に示します。このクラスを使用して、取引先レコードのいくつかの詳細を逐次化可能な形式にパッケージ化します。
1public class SimpleAccount {
2    
3    @AuraEnabled public String Id { get; set; }
4    @AuraEnabled public String Name { get; set; }
5    public String Phone { get; set; }
6    
7    // Trivial constructor, for server-side Apex -> client-side JavaScript
8    public SimpleAccount(String id, String name, String phone) {
9        this.Id = id;
10        this.Name = name;
11        this.Phone = phone;
12    }
13    
14    // Default, no-arg constructor, for client-side -> server-side
15    public SimpleAccount() {}
16    
17}
リモート Apex コントローラアクションから返されたときに、Id および Name プロパティがクライアント側で定義されます。ただし、@AuraEnabled アノテーションがないため、Phone プロパティはサーバ側で逐次化されず、結果データの一部として返されません。