Salesforce.com is the world's leading CRM provider with billions of transactions per day. It also has one of the broadest set of integration services available with options for query, batch, and streaming. How does a developer choose the right one for their situation? In this course, we'll explore all the major integration APIs that Salesforce has to offer, and see when each one is the right fit for a given situation. You'll learn how to use each API to get data in and out of Salesforce effectively, and make Salesforce a first-class, integrated component of your application portfolio.
Richard Seroter is the VP of Product Marketing at Pivotal, with a master’s degree in Engineering from the University of Colorado. He’s also an 11-time Microsoft MVP for cloud, an instructor for Pluralsight, the lead InfoQ.com editor for cloud computing, and author of multiple books. As Vice President at Pivotal, Richard leads product, customer, technical, and partner marketing teams. Richard maintains a regularly updated blog on topics of architecture and solution design and can be found on Twitter as @rseroter.
Course Overview Hey everyone, my name is Richard Seroter. Welcome to my course, Using Force. com Integration APIs to Connect Your Applications. I'm the vice president at Century Link for product, Microsoft MVP, and editor at infoq. com, author and blogger, occasional Tweeter. Salesforce continues to explode in popularity as millions of developers worldwide are building solutions on that platform. The challenge is though how do you connect Salesforce to the rest of your things? In this course we're going to check out the many Salesforce integration APIs and figure out how to choose the right ones for a given scenario based on a deep dive into each. We're going to cover a number of things including how SOAP and REST APIs work, how to do bulk uploads and queries of data, how do we work with real-time, push-based notifications, and change how we interact traditionally with systems. By the end of this course you'll know exactly how the pick the right API for your integration scenario and feel much more comfortable with the breadth that Salesforce offers you. I hope you'll have as much fun as I did on this Pluralsight course and that you'll join me for this journey.
Touring the Force.com Integration APIs Hi, my name is Richard Seroter. Welcome to this course on Salesforce Integration APIs. Over these next few modules we're going to do a deep dive into the full breadth of Force. com's integration services. In this particular module we're going to set up the discussion, we're going to review each API, and we're going to prepare our environment for all the different exercises we'll be doing ahead (Loading).
Creating Lightweight Integrations with the Force.com REST API Hey there, my name is Richard Seroter. Welcome to this next module in a course on the Salesforce Integration APIs. In this one we're going to spend some time looking at connecting to Force. com through the REST API. In the last module we checked out the SOAP API and how to use it and also did a little more setting up our account. Specifically we're going to take a quick look at the anatomy of a typical REST call, kind of standardize ourselves with how REST works. We're going to discuss authenticating users; this is very different from the SOAP API so we'll take a look at that. I'll explain some of the REST objects and actions and how you interact with the REST endpoint. We'll talk about the role of HTTP response codes as this plays a different role than the way errors were sent in a SOAP payload, now you're actually dealing more with typical HTTP communication, so you want to understand what those response codes mean. We'll talk about conditional requests and how you can do some interesting things with caching. I'll look at composite calls, there's a really cool capability with the REST API where you can do these sort of grouped operations of different record types or related records, nested records, and we'll see how you can take advantage of that, much like with the SOAP service I'll show you how to build a custom REST service. This is great when you want to do something that isn't provided by an out of the box service. And then finally, we'll summarize. Like before, let's have a simple definition. The REST API is simple access to Salesforce data and functionality via RESTful endpoint. Again, REST is something where there's enough religious debate over SOAP versus REST and is something actually RESTful, the point is is trying to use resource definitions and HTTP verbs in a stateless fashion in order to communicate with a system.
Interacting with Bulk Data in Force.com Hi, my name is Richard Seroter. Welcome to this next module on Force. com integration APIs. This specific one is looking at bulk data interactions with Force. com. In the last module we took a long look at the REST API and saw how to use a web service interface to easily interact with Force. com objects and metadata, now we pivot a little bit to talking about bulk data and not doing things in a real time fashion. Specifically we'll talk about some of the key concepts in the Bulk API to be aware of. We'll review the lifecycle of a typical Bulk API interaction. We'll see how in the world you authenticate against the Bulk API. We'll review the job lifecycle, see how batches work, we'll talk about transformation specs, which are powerful when you're dealing with data that might not be sourced from Salesforce and you need to do some transformation. We'll review how error codes work. We'll look at executing bulk queries, which again, is a very powerful way to collect a lot of data without having to synchronously wait for it. And then finally talk about some best practices and limits before wrapping up. Like we've been doing, let's define this. Really it's programmatic access to quickly load data into, and retrieve data from, Salesforce. That's why you use this, that's what it matters. The whole point is how do I get data in and out of Salesforce efficiently knowing I'm dealing with a lot of data.
Using Force.com Outbound Messaging for Real-time Push Integration Hi there, my name is Richard Seroter. We are in another module here in this course about Force. com integration patterns and APIs. In this module we're going to talk about outbound messaging and real-time push notification. In the last module we looked at batch processing, how we take a deep dive into real-time integration, so a little bit of back and forth, but hopefully this gives you a good sense for the sort of breadth that you have available in Force. com. In this module we're going to talk a little bit about reliable delivery, set the table, talk about some of the key concepts you need to be aware of for outbound messaging. We'll review how you secure outbound messaging based solutions. We'll talk about the flow for creating an outbound message, the interesting parts of creating a client to receive an outbound message, how in the world you track these messages and follow up on what's going on, and then finally a quick summary. For definition purposes, outbound messaging is how you react to data changes by triggering messages to internet-facing endpoints. All those key points we'll address throughout this module, but the key is it's event driven, it triggers a message, and I goes to an endpoint that you operate somewhere that is internet accessible, that the Salesforce can reach it.
Doing Push Integration Anywhere with the Force.com Streaming API Hi there, my name is Richard Seroter, welcome to this module on doing advanced push notifications in Force. com. In the last module we looked at how outbound messaging works and how it enables some real-time notifications. This module takes that conversation a little further with a bit of a different way of doing real-time messaging with Force. com endpoints. In this particular module we're going to start off by talking about some of the key concepts to be aware of in the Streaming API. We'll talk about the Bayeux protocol and CometD. We'll compare outbound messaging with the Streaming API so that you feel like you've got a good idea of when you should use either one or the other. We'll discuss streaming API users and how you authenticate. Next we'll look at Push Topics which form a foundational component of the Streaming API. We'll discuss what it means to create clients for your Streaming API apps. We'll look at the new featured called Generic Streaming and how you can use a capability that's not tied directly to Salesforce objects to still do push notifications to a broad set of users. Finally, we'll look at Streaming API limits before summarizing all of our work. What is the Streaming API? Really, it's receiving a live stream of data changes based on a SOQL query that you define. So unlike outbound messaging where you're really just doing some things based on the created and editing of records, here you're actually able to have a more refined query and you're able to define the criteria that triggers a change that you receive in the stream.
Consuming External Services with Force.com Apex Callouts Hi there, my name is Richard Seroter. Welcome to this final module in a course about the Force. com integration APIs. In this module we're going to talk about consuming services outside of Force. com. While in the last module we looked at the streaming API and we've looked at a lot of ways that you can kind of reach data into Salesforce or Salesforce pushes some data out, what about ways for Salesforce to reach into other systems and pull in data to make it easier to integrate with these external systems? That's what we'll be spending time on here, how does Salesforce dip into other systems and pull in data. We'll start off by talking about some of the key concepts in Apex callouts. We'll discuss remote site settings and what they do. We'll share the idea of named credentials, which is a fairly new capability, talk about how you can generate Apex classes from a WSDL, perform raw HTTP callouts if you want to get down to the bare bones and work with HTTP objects and JSON and XML. We'll see how you work with XML and JSON payloads. We'll take a look at long-running callouts from VisualForce pages, which is some pretty cool stuff, and then finally we'll talk about some of the callout limits and what you have to be careful of when you're calling out to external systems. So what is an Apex callout? Really it's making a call from Apex code, Apex being the programming language and framework within Salesforce, to an external web service, and then receiving a response and doing something with it. Again, pretty straightforward, but important to understand what these terms are and try to give you some basic definitions.