将Salesforce数据作为Rest API公开

问题描述 投票:0回答:1

我是Salesforce的新手,我想就如何将Salesforce数据公开为Rest API以便外部系统可以使用它而获得一些专家建议。我想如果我可以创建一个Apex类下面

@RestResource(urlMapping='/GetAccounts/*')
global with sharing class GetAccounts {
    @HttpGet
    global static Account doGet() {
        RestRequest req = RestContext.request;
        RestResponse res = RestContext.response;
        String accountId = req.requestURI.substring(req.requestURI.lastIndexOf('/')+1);
        Account result = [SELECT Id, Name FROM Account WHERE Id = :accountId];
        return result;
    }
}

并且为了让外部用户使用数据,我以为我可以设置一个已连接的应用程序并向其提供用户名,密码,消费者密钥,消费者机密,他们应该向Salesforce进行身份验证以获取URI和会话ID 。使用SessionID和URI,应该能够调用上面公开的API。这是正确的方法吗,如果我在这里遗漏任何东西,请告诉我。

此外,还要求在API中使用Swagger,是否可以在Apex类中使用Swagger。您能否在这里帮助我如何在我的API中利用Swagger。

rest api salesforce swagger swagger-codegen
1个回答
0
投票

首先,您应该尝试使用Salesforce标准REST API。您可以从此处查看完整的文档。https://developer.salesforce.com/docs/api-explorer/sobject/Account

[您可能会问自己,好吧,我应该像提供的代码一样将APEX类公开为REST API吗?当您需要执行自定义逻辑并将其与API调用结合使用时,需要执行此操作。

尚不支持将Salesforce REST API公开为OPEN API规范(Swagger)。如果需要,您可以投票支持该想法。https://success.salesforce.com/ideaView?id=0873A000000cQsxQAE

但是支持另一种方式。您可以导入一个摇摇欲坠的规范文件,并使用Salesforce的指向和点击来调用它。检查此博客以获取更多详细信息:https://andyinthecloud.com/2017/07/23/simplified-api-integrations-with-external-services/

© www.soinside.com 2019 - 2024. All rights reserved.