如何让我的 Apex class return 或 "run" 成为 JSON?使用 APEX REST

How to make my Apex class return or "run" a JSON? using APEX REST

我正在使用以下代码为名为 Resource Booking 的 Salesforce 自定义对象生成 JSON。我如何 "run" 文件(或调用 responseJSON),以便当我输入自定义 URL(在第一条评论中)时,它会跳转到类似于此示例网页的页面? https://www.googleapis.com/customsearch/v1?json

这是我的代码:

@RestResource(urlMapping='/demo/createTask/*') //endpoint definition > {Salesforce Base URL}/services/apexrest/demo/createTask/
global class ResourceBookingTransfer {

    public List<Resource_Booking__c> resourceBookingList{get; set;}

    public ResourceBookingTransfer(ApexPages.StandardController controller) {
        //getResourceBookingList(); 
    }

    @HttpGet //HttpGet request

    global static responseWrapper getResourceBookingList() {
        responseWrapper responseJSON = new responseWrapper(); //responseWrapper object for API response
        responseJSON.message = 'Hello World';
        return responseJSON; //return the JSON response
        //resourceBookingList = Database.query('SELECT Booking_ID__c, Booking_Name__c, Start_Date_Time__c, End_Date_Time__c, Resource__c FROM Resource_Booking__c');    
    }

    //wrapper class for the response to an API request
    global class responseWrapper {

        global String message {get;set;} //message string

        //constructor
        global responseWrapper() {
            this.message = '';
        }
    }
}

只是测试一下 - 使用 https://workbench.developerforce.com 可能是最简单的。那里有 "REST explorer" 菜单。您的代码应该在类似于 /services/apexrest/demo/createTask.

的资源下可用

为什么 url?阅读https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_rest_code_sample_basic.htm

如果您对这种手动测试感到满意 - 您可以尝试从外部进行测试 workbench。 Workbench 将您登录到 SF,并在后台通过 header 和有效的 session id。如果您想从其他网站或移动应用程序调用您的服务 - 您需要先执行登录调用,获取 session id,然后 运行 您的代码。根据您的应用程序的需要,您可以使用多种 OAuth 流程来执行此操作,也许从这个开始:https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/intro_understanding_username_password_oauth_flow.htm