Which API Should I Use?
Available in: Enterprise, Unlimited, Developer, and Database.com Editions |
User Permissions Needed | |
---|---|
To use the APIs | “API Enabled” |
Salesforce provides programmatic access to your organization’s information using simple, powerful, and secure application
programming interfaces.
API Name | What It’s For | When to Use It | Protocol | Data Format | Communication |
---|---|---|---|---|---|
REST API | Accessing objects in your organization using REST. | You want to leverage the REST architecture to integrate with your organization. No WSDL requirement.
Well-suited for browser-based applications, mobile apps, and highly-interactive social applications.
| REST | JSON, XML | Synchronous |
SOAP API | Integrating your organization’s data with other applications using SOAP. | You have pre-existing middleware services that need to work with WSDLs and XML data. | SOAP/WSDL | XML | Synchronous |
Chatter API | Accessing Chatter feeds and social data such as users, groups, followers, and files using REST. | You want to integrate Chatter into a variety of applications, such as mobile apps, intranet sites, and third-party Web applications. | REST | JSON, XML | Synchronous (photos are processed asynchronously) |
Bulk API | Loading or deleting large numbers of records. | You have over a million records to process and speed is a requirement. | REST | CSV, XML | Asynchronous |
Metadata API | Managing customizations in your organization and building tools that can manage the metadata model, not the data itself. | You want to migrate changes, such as custom object definitions and page layouts, from asandbox to your production environment. | SOAP/WSDL | XML | Asynchronous |
Streaming API | Providing a stream of data reflecting data changes in your organization. | You need near real-time notifications of when records are created or updated. | Bayeux | JSON | Asynchronous (stream of data) |
Apex REST API | Building your own REST API in Apex. ExposesApex classes as RESTful Web services. | You need to build custom JSON responses or you want to expose custom functionality that you implemented in Apex. | REST | JSON, XML, Custom | Synchronous |
Apex SOAP API | Creating custom SOAP Web services in Apex. Exposes Apex classes as SOAP Web services. | You need to build custom XML responses or you want to expose custom functionality that you implemented in Apex . | SOAP/WSDL | XML | Synchronous |
When to Use REST API
REST API provides a powerful, convenient, and simple REST-based Web services interface for interacting with Salesforce.
Its advantages include ease of integration and development, and it’s an excellent choice of technology for use with mobile applications
and Web projects. However, if you have a large number of records to process, you may wish to use Bulk API, which is based on
REST principles and optimized for large sets of data.
When to Use SOAP API
SOAP API provides a powerful, convenient, and simple SOAP-based Web services interface for interacting with Salesforce.
You can use SOAP API to create, retrieve, update, or delete records. You can also use SOAP API to perform searches and much more.
UseSOAP API in any language that supports Web services.
For example, you can use SOAP API to integrate Salesforce with your organization’s ERP and finance systems, deliver real-time sales
and support information to company portals, and populate critical business systems with customer information.
When to Use Chatter API
Chatter API is a REST API that provides programmatic access to Chatter feeds and social data such as users, groups, followers, and files.
It's used by developers who want to integrate Chatter into a variety of applications such as mobile applications, intranet sites,
and third-party Web applications. Chatter API is similar to APIs offered by other companies with feeds, such as Facebook and Twitter.
Its advantages include ease of integration and development.
Note
Chatter API and Chatter REST API refer to the same API.
When to Use Bulk API
Bulk API is based on REST principles and is optimized for loading or deleting large sets of data. You can use it to query, insert,
update, upsert, or delete a large number of records asynchronously by submitting batches which are processed in the background
by Salesforce.
SOAP API, in contrast, is optimized for real-time client applications that update small numbers of records at a time. Although SOAP API
can also be used for processing large numbers of records, when the data sets contain hundreds of thousands of records, it becomes less practical. Bulk API is designed to make it simple to process data from a few thousand to millions of records.
The easiest way to use Bulk API is to enable it for processing records in Data Loader using CSV files.
This avoids the need to write your own client application.
When to Use Metadata API
Use Metadata API to retrieve, deploy, create, update, or delete customizations for your organization.
The most common use is to migrate changes from a sandbox or testing organization to your production environment.
Metadata API is intended for managing customizations and for building tools that can manage the metadata model, not the data itself.
The easiest way to access the functionality in Metadata API is to use the Force.com IDE or Force.com Migration Tool.
These tools are built on top of Metadata API and use the standard Eclipse and Ant tools respectively to simplify the task of working
with Metadata API. Built on the Eclipse platform, the Force.com IDE provides a comfortable environment for programmers familiar
with integrated development environments, allowing you to code, compile, test, and deploy all from within the IDE itself.
The Force.com Migration Tool is ideal if you want to use a script or a command-line utility for moving metadata between a local directory
and a Salesforceorganization.
When to Use Streaming API
Use Streaming API to receive notifications for changes to data that match a SOQL query that you define.
Streaming API is useful when you want notifications to be pushed from the server to the client.
Consider Streaming API for applications that poll frequently. Applications that have constant polling action against the Salesforce
infrastructure, consuming unnecessary API call and processing time, would benefit from this API which reduces the number of requests
that return no data.Streaming API is also ideal for applications that require general notification of data changes.
This enables you to reduce the number of API calls and improve performance.
No comments:
Post a Comment