我是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。
首先,您应该尝试使用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/