Apex 上的 Salesforce GraphQL API 实施

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

刚刚看到 salesforce graphQL API。当从开发控制台进行标注时,它工作正常,但一旦尝试从从 LWC 调用的 Apex 进行同样的操作。

String endpoint = ‘/services/data/v52.0/graphql’;
HttpRequest request = new HttpRequest();
request.setEndpoint(endpoint);
request.setMethod(‘POST’);
request.setHeader(‘Authorization’, ‘Bearer ’ + UserInfo.getSessionId());
request.setHeader(‘Content-Type’, ‘application/json’);
request.setBody(‘{“query”: ” { uiapi { query { Contact { edges { node { Id Name { value } } } } } }} ” }’);
Http http = new Http();
HTTPResponse response = http.send(request);
System.debug(response.getBody());

有人在 salesforce 中使用有线适配器尝试过 GraphQL 或只是从 apex 进行 http 标注吗?

我们尝试使用 LWC GraphQL 线适配器,但没有用 所以在 Apex 中尝试了 HTTP 标注并从 LWC 调用了该方法但是获取会话 ID 对 Rest API 无效

graphql salesforce salesforce-lightning
1个回答
0
投票

LWC 会话 ID 对 API 访问无效。您可以对“此”salesforce 实例以外的任何服务器使用标注(远程站点设置、命名凭据)。要调用“this”的 API,您需要建立一个单独的会话 ID。

有一个 visualforce 页面 (meh) 的 hack 和 Auth Provider + Named Credential 的“专业”方式。见https://sfdcpanther.wordpress.com/2018/02/05/how-to-call-salesforce-api-from-lightning-component/

也见https://salesforce.stackexchange.com/q/55306/799

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