我想通过 REST API 获取我的 visualforce 页面顶点代码。我尝试了像 /services/data/v41.0/sobjects/{sobjectName}/describe/layouts 这样的元数据 API,我能够访问字段信息,但我想访问定义所有字段和触发器的页面的顶点代码。
任何指导将不胜感激。谢谢
我想通过 REST API 获取我的 visualforce 页面顶点代码。我尝试了像 /services/data/v41.0/sobjects/{sobjectName}/describe/layouts 这样的元数据 API,我能够访问字段信息,但我想访问定义所有字段和触发器的页面的顶点代码。
任何指导将不胜感激。谢谢
您必须进行 2 次 api 调用,即首先获取 vf 页面代码,然后获取控制器代码。
如果在工作台上进行测试,请使用端点 url:
/services/data/v43.0/tooling/query?q=select+id,ControllerKey,Markup+from+apexpage+where+name='<pagename>'
响应将在ControllerKey
节点中为您提供控制器名称。
现在,接下来使用端点调用 Apex 类:
/services/data/v43.0/tooling/query?q=select+id,body,name+from+apexclass+where+name='<ControllerKey value>'
如果将 apex 类用作扩展,那么您必须从第一个响应中解析标记以获取类名。
如果您需要更多详细信息,请告诉我。
ApexClass
您可以从对标准对象的查询中获取 Apex 类(不属于托管包的一部分)的主体:
curl \
-H 'X-PrettyPrint: 1' \
-H 'Authorization: Bearer <session-id>' \
https://ap4.salesforce.com/services/data/v43.0/tooling/query?q=SELECT+Body+FROM+ApexClass+LIMIT+1
Visualforce 页面可以类似地通过对ApexPage
标准对象的查询来检索Markup
:
curl \
-H 'X-PrettyPrint: 1' \
-H 'Authorization: Bearer <session-id>' \
https://ap4.salesforce.com/services/data/v43.0/tooling/query?q=SELECT+Markup+FROM+ApexPage+LIMIT+1
有关要查询的可用标准字段和对象的更多信息,请查看对象参考