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 WSDL文件
在设置界面下,搜索“API”,点击“开发”菜单项下面的“API”链接,进入“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)
它们有以下特点:
- 企业WSDL是强类型的,它和特定的某个Salesforce组织紧密联系在一起。当此Salesforce组织被修改之后,比如自定义字段、对象被修改,生成的企业WSDL也会不同
- 合作伙伴WSDL是弱类型的,不和特定的Salesforce组织联系在一起,所以当Salesforce组织被修改之后,不会生成不同的合作伙伴WSDL
如果开发者需要通过API对某个特定的Salesforce组织进行CRUD操作,则使用企业WSDL。如果对多个Salesforce组织进行操作,则使用合作伙伴WSDL。