Apex Integration Overview
Make Callouts to External Services from Apex
Apex callouts come in two flavors.
- Web service callouts to SOAP web services use XML, and typically require a WSDL document for code generation.
- HTTP callouts to services typically use REST with JSON.
These two types of callouts are similar in terms of sending a request to a service and receiving a response. But while WSDL-based callouts apply to SOAP Web services, HTTP callouts can be used with any HTTP service, either SOAP or REST.
So you are probably asking yourself right now, “Which one should I use?” Whenever possible, use an HTTP service. These services are typically easier to interact with, require much less code, and utilize easily readable JSON. All the “cool kids” have been switching to REST services over the last couple of years, but that’s not to say that SOAP Web services are bad. They’ve been around forever (in Internet years) and are commonly used for enterprise applications. They are not going away anytime soon. You’ll probably use SOAP mostly when integrating with legacy applications or for transactions that require a formal exchange format or stateful operations. In this module we’ll touch on SOAP, but will spend most of our time on REST.
Authorize Endpoint Addresses
We’ll be using the following endpoints in this module, so go ahead and add them now. If you forget to add an endpoint, trust me, you'll get a reminder when you try to run your code. We’ll be making calls to the following sites.
- https://th-apex-http-callout.herokuapp.com
- https://th-apex-soap-service.herokuapp.com
Authorize both of these endpoint URLs by following these steps.
- From Setup, enter Remote Site Settings in the Quick Find box, then click Remote Site Settings.
- Click New Remote Site.
- For the remote site name, enter animals_http.
- For the remote site URL, enter https://th-apex-http-callout.herokuapp.com. This URL authorizes all subfolders for the endpoint, like https://th-apex-http-callout.herokuapp.com/path1 and https://th-apex-http-callout.herokuapp.com/path2.
- For the description, enter Trailhead animal service: HTTP.
- Click Save & New.
- For the second remote site name, enter animals_soap.
- For the remote site URL, enter https://th-apex-soap-service.herokuapp.com.
- For the description, enter Trailhead animal service: SOAP.
- Click Save.