如何通过 rest api 获取我的 visualforce 页面顶点代码?
How to get my visualforce page apex code through rest api?
我想通过休息获取我的 visualforce 页面顶点代码 API。我尝试了像 /services/data/v41.0/sobjects/{sobjectName}/describe/layouts 这样的元数据 API,我能够访问字段信息,但我想访问定义所有字段和触发器。
如有任何指导,我们将不胜感激。谢谢
您可以通过对 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
有关可查询的可用标准字段和对象的更多信息,请查看 Object Reference
您必须进行 2 次 api 调用,即第一次获取 vf 页面代码,第二次获取控制器代码。
IF 在 workbench 上进行测试,使用终点 url 作为:
/services/data/v43.0/tooling/query?q=select+id,ControllerKey,Markup+from+apexpage+where+name='<pagename>'
响应将在 ControllerKey
节点中为您提供控制器名称。
现在,下一次调用 Apex class 使用终点作为:
/services/data/v43.0/tooling/query?q=select+id,body,name+from+apexclass+where+name='<ControllerKey value>'
如果 apex class 被用作扩展,那么您必须从第一个响应中解析标记以获取 class 名称。
如果您需要更多详细信息,请告诉我。
我想通过休息获取我的 visualforce 页面顶点代码 API。我尝试了像 /services/data/v41.0/sobjects/{sobjectName}/describe/layouts 这样的元数据 API,我能够访问字段信息,但我想访问定义所有字段和触发器。
如有任何指导,我们将不胜感激。谢谢
您可以通过对 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
有关可查询的可用标准字段和对象的更多信息,请查看 Object Reference
您必须进行 2 次 api 调用,即第一次获取 vf 页面代码,第二次获取控制器代码。
IF 在 workbench 上进行测试,使用终点 url 作为:
/services/data/v43.0/tooling/query?q=select+id,ControllerKey,Markup+from+apexpage+where+name='<pagename>'
响应将在 ControllerKey
节点中为您提供控制器名称。
现在,下一次调用 Apex class 使用终点作为:
/services/data/v43.0/tooling/query?q=select+id,body,name+from+apexclass+where+name='<ControllerKey value>'
如果 apex class 被用作扩展,那么您必须从第一个响应中解析标记以获取 class 名称。
如果您需要更多详细信息,请告诉我。