Apex 的 API 简介

Salesforce 数据API分类

Salesforce中提供了四种数据API接口。数据API接口为开发者提供了操作Salesforce数据的能力。它们分别是:

  • REST API:依据RESTful方法对数据进行新建、读取、更新、删除(CRUD)处理。REST API支持JSON和XML格式。REST API是轻量级的API,适用于处理网络应用或移动应用中。
  • SOAP API:基于SOAP协议,使用WSDL格式的文件处理数据。只支持XML格式。适用于服务器之间的通信。
  • Bulk API:是一种特殊定制的REST API,针对大批量数据(50000条记录或更多)的处理有更好的效果。
  • Streaming API:适用于当数据发生变化时发送提示消息。

启用API权限

要使用API,需要在用户的简档中,将“已启用 API”(API Enabled)复选框勾选。

API限制

Salesforce中有两种API限制。“并发限制”限制了同时运行的持续时间高于20秒的API请求的数量,“数量限制”限制了24小时之内运行的API请求的总数。

要查看可运行的API的剩余数量,可以在设置界面中搜索“系统概览”,打开“系统概览”页面。在“API 使用情况”部分可以查看最近24小时之内运行的API数量,和最多允许的数量。

系统概览界面

要设定API的使用通知,可以在设置界面中搜索“API 使用通知”,打开“所有API 使用通知”界面。点击“新建”按钮即可新建API使用通知,当API使用数量达到一定的阈值时,会自动发送邮件通知相关的用户。

编辑API使用通知界面

生成API WSDL文件

在设置界面下,搜索“API”,点击“开发”菜单项下面的“API”链接,进入“API WSDL”页面。

API WSDL界面

在此页面中,可以生成和下载各种WSDL和客户端证书,供API开发者使用。

比如:

  • 点击“生成企业 WSDL”链接,在显示的窗口中点击“Generate”按钮,即可得到一个WSDL文件
  • 在SoapUI中使用此文件新建项目,即可建立与相应Salesforce系统的API通信
  • 开发者可以使用“login”操作来进行登录请求。注意,在Salesforce登录时,密码的部分需要输入密码和安全口令(Security Token)。比如密码是“123”,安全口令是“abc”,那么在“”标签中需要输入“123abc”。示例如下:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:enterprise.soap.sforce.com">
   <soapenv:Header>
      <urn:LoginScopeHeader>
         <urn:organizationId></urn:organizationId>
         <!--Optional:-->
         <urn:portalId></urn:portalId>
      </urn:LoginScopeHeader>
   </soapenv:Header>
   <soapenv:Body>
      <urn:login>
         <urn:username>用户名</urn:username>
         <urn:password>密码和安全口令</urn:password>
      </urn:login>
   </soapenv:Body>
</soapenv:Envelope>
  • 在登录成功后,系统会生成会话ID(在“”标签中)和服务器URL(在“”标签中)。开发者需要记录下它们,以便于在以后的其他请求中使用
  • 开发者可以使用比如“create”等操作来对各种对象进行操作请求。在相应的标签中输入相应的值,并且在对应的标签中输入之前的会话ID或服务器URL,即可发送请求,完成操作

企业WSDL和合作伙伴WSDL的区别

Salesforce中最经常使用的是两种WSDL:

  • 企业WSDL(Enterprise WSDL)
  • 合作伙伴WSDL(Partner WSDL)

它们有以下特点:

  1. 企业WSDL是强类型的,它和特定的某个Salesforce组织紧密联系在一起。当此Salesforce组织被修改之后,比如自定义字段、对象被修改,生成的企业WSDL也会不同
  2. 合作伙伴WSDL是弱类型的,不和特定的Salesforce组织联系在一起,所以当Salesforce组织被修改之后,不会生成不同的合作伙伴WSDL

如果开发者需要通过API对某个特定的Salesforce组织进行CRUD操作,则使用企业WSDL。如果对多个Salesforce组织进行操作,则使用合作伙伴WSDL。

posted @ 2019-08-18 07:19  程程哥  阅读(1374)  评论(0编辑  收藏  举报