学习目标
完成本单元后,您将能够:
- 描述以API为先的开发方法的好处。
- REST API,SOAP API,Bulk API和Streaming API的状态用例。
- 命名这两种类型的API限制并描述它们的计算方式。
API首先在Salesforce
嗨,妈呀!您是否准备好在公海上航行,寻找完美的Salesforce API来进行集成?那么,船长,抓住你的眼罩,找到一只鹦鹉。您即将浏览Force.com区域并了解我们的所有API。
Salesforce API环境和海蓝一样广阔。这是因为Salesforce采用API优先方法来构建Salesforce平台上的功能。 API首先意味着在专注于设计UI之前,为功能构建强大的API。这种方法使Salesforce开发人员能够灵活地根据需要操作数据。
Salesforce知道其客户和合作伙伴总是在想办法扩展Salesforce功能和令人兴奋的AppExchange应用程序。提供一个用于在平台上开发的综合工具箱是重中之重。这种方法还可以让Salesforce在API之上构建UI,确保它们之间的行为相同。
把这个模块想象成你的API第一个伴侣。我们将一起浏览一些常规的API信息,对Salesforce的API套件进行调查,并深入使用一些常见的API。所有这些信息将为您提供所需的知识,以便为您的项目选择正确的API。
Salesforce数据API
在Salesforce API的海洋中,有一个我们在本模块中关注的常用API的关键群组。它们是REST API,SOAP API,Bulk API和Streaming API。他们一起组成了Salesforce数据API。他们的目的是让您操纵您的Salesforce数据,而其他API让您可以自定义页面布局或构建自定义开发工具。您也可以使用其他Salesforce API来操纵Salesforce数据的子集。例如,Analytics(分析)REST API侧重于分析。但是这四个API广泛应用于Salesforce核心数据的各个区域。
REST API
REST API是基于RESTful原则的简单而强大的Web服务。它通过REST资源和HTTP方法公开各种Salesforce功能。例如,您可以创建,读取,更新和删除(CRUD)记录,搜索或查询数据,检索对象元数据以及访问组织中有关限制的信息。 REST API支持XML和JSON。
由于REST API具有轻量级的请求和响应框架,并且易于使用,所以对于编写移动应用程序和Web应用程序非常有用。
SOAP API
SOAP API是基于具有相同名称的行业标准协议的功能强大且功能强大的Web服务。它使用Web服务描述语言(WSDL)文件来严格定义通过API访问数据的参数。 SOAP API仅支持XML。大部分SOAP API功能也可以通过REST API获得。这取决于哪个标准更好地满足您的需求。
因为SOAP API使用WSDL文件作为API和使用者之间的正式契约,所以编写服务器到服务器的集成是非常好的。
Bulk API
批量API是一种专门用于一次加载和查询大量数据的RESTful API。我们的意思是5万条记录或更多。批量API是异步的,这意味着您可以提交请求并稍后返回结果。处理大量数据时,这种方法是首选方法。 Bulk API有两个版本(1.0和2.0)。两个版本都处理大量的数据,但是我们在这个模块中使用Bulk API 2.0,因为它使用起来更容易一些。
批量API非常适合执行涉及大量记录的任务,例如首次将数据加载到组织中。
Streaming API
Streaming API是一个专门的API,用于设置在对数据进行更改时触发的通知。它使用发布 – 订阅(pub-subscribe)或发布/订阅(pub / sub)模型,用户可以在其中订阅广播某些类型的数据更改的频道。
发布/订阅模型通过消除轮询的需要来减少API请求的数量。流式API对编写应用程序非常有用,否则这些应用程序需要经常轮询更改。
API访问和身份验证
除了SOAP API login()调用之外,所有API调用都需要身份验证。您可以使用其中一个受支持的OAuth流,也可以使用从SOAP API login()调用中检索的会话标识进行身份验证。查看开发者指南,了解您所选择的API。
API限制
任何值得他或她的盐的船长都知道何时为了船的利益而限制船员。如果船长让水手整天喝酒,什么事都做不了。同样,Salesforce也会限制每个组织的API调用次数,以确保实例的健康状况。这些限制是为了防止流氓脚本将我们的服务器砸成浮木。他们不妨碍你的日常工作。尽管如此,熟悉它们是个好主意。
有两种类型的API限制。并发限制限制了同时运行的长时间呼叫(20秒或更长)的数量。总限制限制了在24小时内滚动的呼叫数量。
并发限制因组织类型而异。对于开发者版本组织,限制是一次五个长时间运行的调用。对于沙箱组织来说,这是25个长时间运行的呼叫。
根据您购买的组织版本,许可证类型和扩展包,总数限制会有所不同。例如,Enterprise Edition组织每个Salesforce许可证可获得1000个呼叫,每个Force.com Light App许可证可获得200个呼叫。使用无限的应用包,相同的企业版组织可以获得额外的4000个电话。根据组织版本,总限制也受到最低限额和最高限额的限制,但我们不会在这里进行讨论。如果您想了解更多信息,请参阅参考资料部分中的API请求限制链接。
你有几种方法来检查你的剩余的API调用。您可以在“系统概述”页面的“API使用情况”框中查看它们。从“设置”中,在快速查找方框中输入系统概览,然后选择系统概览。您也可以在您的组织超出您指定的多个API调用时设置通知。为此,从安装程序中,在快速查找框中输入API使用通知,然后选择API使用通知。
使用REST或SOAP API时,LimitInfoHeader响应标题可以为您提供有关剩余呼叫的信息。您还可以访问REST API限制资源,了解组织中各种限制的信息。
我使用哪个API?
为您的整合需求选择正确的API是一个重要的决定。以下是我们最常用的API的一些信息,包括支持的协议,数据格式,通信范例和用例。将本节作为参考,您可以在考虑使用哪个API时返回。
请注意我们已经谈到的四个数据API。接下来我们将深入其中。
API名称 | 协议 | 数据格式 | 通讯 |
---|---|---|---|
REST API | REST | JSON, XML | 同步 |
SOAP API | SOAP (WSDL) | XML | 同步 |
Chatter REST API | REST | JSON, XML | 同步(照片异步处理) |
Analytics REST API | REST | JSON, XML | 同步 |
Bulk API | REST | CSV, JSON, XML | 同步 |
Metadata API | SOAP (WSDL) | XML | 同步 |
Streaming API | Bayeux | JSON | 异步(数据流) |
Apex REST API | REST | JSON, XML, Custom | 同步 |
Apex SOAP API | SOAP (WSDL) | XML | 同步 |
Tooling API | REST or SOAP (WSDL) | JSON, XML, Custom | 同步 |
何时使用REST API
REST API提供了一个强大,方便,简单的基于REST的Web服务接口,用于与Salesforce进行交互。它的优点包括易于集成和开发,并且是移动应用程序和Web项目使用的最佳技术选择。但是,如果您有多个要处理的记录,请考虑使用Bulk API,该API基于REST原则并针对大量数据集进行了优化。
何时使用SOAP API
SOAP API为与Salesforce进行交互提供了一个强大,方便且简单的基于SOAP的Web服务界面。您可以使用SOAP API创建,检索,更新或删除记录。您还可以使用SOAP API执行搜索等等。使用任何支持Web服务的语言使用SOAP API。
例如,您可以使用SOAP API将Salesforce与您的组织的ERP和财务系统集成。您还可以向公司门户网站提供实时销售和支持信息,并使用客户信息填充关键业务系统。
何时使用Chatter REST API
使用Chatter REST API来显示Salesforce数据,尤其是在移动应用程序中。除Chatter提要,用户,组和追随者外,Chatter REST API还提供对文件,推荐,主题,通知,Data.com采购等的编程式访问。 Chatter REST API类似于其他公司提供的API,例如Facebook和Twitter,但也暴露了Chatter之外的Salesforce功能。
何时使用Analytics REST API
您可以使用Google Analytics REST API以编程方式访问Google Analytics资产(如数据集,镜头和仪表板)。将查询直接发送到Analytics平台。访问已导入到Google Analytics平台的数据集。创建和检索镜头。访问XMD信息。检索数据集版本的列表。创建和检索分析应用程序。创建,更新和检索Google Analytics仪表板。检索应用程序的依赖关系列表。确定哪些功能可供用户使用。使用快照。操作复制的数据集。
何时使用批量API
批量API基于REST原则,并针对加载或删除大量数据进行了优化。您可以使用它通过提交批来异步查询,查询所有,插入,更新,插入或删除许多记录。 Salesforce在后台处理批次。
相比之下,SOAP API针对实时客户端应用程序进行了优化,每次更新一些记录。您可以使用SOAP API来处理许多记录,但是当数据集包含数十万条记录时,SOAP API不太实用。批量API旨在使处理从数千条到数百万条记录的数据变得简单。
使用Bulk API最简单的方法是使用CSV文件在Data Loader中处理记录。使用Data Loader可以避免编写自己的客户端应用程序。
何时使用元数据API
使用元数据API检索,部署,创建,更新或删除您的组织的自定义项。最常见的用法是将更改从沙箱或测试组织迁移到生产环境。元数据API旨在用于管理自定义和用于构建可以管理元数据模型的工具,而不是数据本身。
访问Metadata API中功能的最简单方法是使用Force.com IDE或Force.com迁移工具。这两个工具都是基于元数据API构建的,分别使用标准的Eclipse和Ant工具来简化对Metadata API的处理。
- Force.com IDE构建在Eclipse平台上,供熟悉集成开发环境的程序员使用。在IDE中编译,编译,测试和部署。
- 如果您使用脚本或命令行在本地目录和Salesforce组织之间移动元数据,Force.com迁移工具是理想选择。
何时使用流式API
使用Streaming API接收与您定义的SOQL查询匹配的数据更改的通知。
如果要将通知从服务器推送到客户端,则Streaming API非常有用。考虑经常轮询的应用程序的流API。持续轮询Salesforce基础设施的应用程序会消耗不必要的API调用和处理时间。 Streaming API减少了不返回数据的请求的数量,对于需要数据更改的一般通知的应用程序也非常理想。
流式API使您可以减少API调用的数量并提高性能。
何时使用Apex REST API
如果要公开Apex类和方法,请使用Apex REST API,以便外部应用程序可以通过REST体系结构访问您的代码。 Apex REST API支持OAuth 2.0和会话ID进行授权。
何时使用Apex SOAP API
如果要将Apex方法公开为SOAP Web服务API,请使用Apex SOAP API,以便外部应用程序可以通过SOAP访问您的代码。
Apex SOAP API支持OAuth 2.0和会话ID进行授权。
何时使用工具API
使用工具API将Salesforce元数据与其他系统集成。元数据类型公开为sObjects,因此您可以访问复杂类型的一个组件。这个字段级访问加快了对复杂元数据类型的操作。您还可以为Force.com应用程序构建自定义开发工具。例如,使用工具API来管理和部署Apex类和触发器以及Visualforce页面和组件的工作副本。您还可以设置检查点或堆转储标记,执行匿名Apex,并访问日志记录和代码覆盖率信息。
REST和SOAP都支持。