We all know what Drupal is capable of in terms of digital content presentation and manipulation. Fast, well-performant websites based on this CMS serve a wide range of purposes, starting from blogs and ending with online stores.
However, if you need a really comprehensive Drupal-powered solution that covers many different areas (e-commerce, email marketing, client relationship management, enterprise resource planning, and others), you can’t do without integrating third-party applications.
This integration is achieved by means of web services that enable communication between your Drupal site and the third-party application you want to use. Web services allow you to fetch data from an external app and provide data from your site to another app in a variety of formats (e.g., XML or JSON), regardless of the programming language or underlying operating system.
Drupal 8 has revolutionized the way the platform provides or consumes web services by adding the corresponding capabilities to the system core.
This has considerably reduced the dependence of Drupal website owners on contributed modules. Now, many third-party integration tasks can be handled without having to download or install “middlemen.” Thus, you have much tighter control over the communication of your site with other resources.
Let’s take a look at what types of solutions you can exchange data with, what exactly Drupal 8 offers regarding external integrations, and what benefits the new Drupal third-party interaction capabilities can bring to your business.
SOME COMMON TYPES OF THIRD-PARTY INTEGRATIONS FOR A DRUPAL WEBSITE
Before we dive into the nitty-gritty of using web services in Drupal 8, let’s consider some examples of external systems for integration.
Email Marketing Systems
Email marketing remains a powerful advertising channel that boasts an even higher conversion rate than social media marketing. There is a great variety of email marketing services to suit every taste and wallet: MailChimp, Marketo, SendGrid, ActiveCampaign, and HubSpot, to name a few.
Rather than using those separately, you can integrate them into your Drupal site and manage your email campaigns from one central location.
Customer Relationship Management Systems (CRMs)
CRM solutions help you manage all your relationships with current and potential customers, make your communication processes and workflows smooth, and increase profitability.
By integrating a CRM such as Salesforce or Zendesk into your Drupal site, you can retrieve any data from a CRM and send data in the opposite direction — from your Drupal site to a CRM system. This gives you a lot of flexibility in how you interact with your customers. For example, the data that your customers type into the forms on your site can be sent straight to a CRM for processing.
Enterprise Resource Planning Systems (ERPs)
This software serves as the foundation for any organization, especially large companies with thousands of employees and millions of customers. It is connected to all other systems a company employs. Examples of ERP systems include Netsuite, Sharepoint, and SAP.
Any e-commerce platform is a conglomeration of various functions, such as payment, inventory management, order management, and many others. A Drupal site can be integrated with a number of e-commerce solutions, such as BigCommerce.
Many of these integrations can now be achieved not only by means of contributed modules as in the past but also by taking advantage of the core Drupal features. This is what we’re going to discuss next.
DRUPAL 8’s CORE FEATURES FOR WORKING WITH WEB SERVICES
We can’t avoid getting a bit technical when we speak about web services. First of all, we need to say a few words about the REST software architectural style that Drupal 8 follows. Web services can be implemented by employing several methods, for example, SOAP and XML-RPC. REST is one of them.
REST stands for representational state transfer. It retrieves and modifies data through HTTP requests. Every web service has its own Application Programming Interface (API) for use in HTTP requests. An API defines HTTP POST and GET parameters as well as a response.
REST views all data and functionality as resources that can be reached via Uniform Resource Identifiers (URIs). In the majority of cases, URIs are represented as links on web pages. Resources can be manipulated by using methods.
There are several types of REST methods. Some of them are self-explanatory: GET (retrieves data) and DELETE (removes data). The purposes of the others are less obvious: PATCH (modifies a certain set of data, such as one field) and POST (creates or modifies data).
Drupal 8 leverages REST to the maximum in its core modules intended for the implementation of web services. Here’s a brief overview of them.
#1: RESTful Web Services
This module enables the use of the HTTP methods we’ve listed above. The resources that those methods work on can be views, content entities, and some others. The RESTful Web Services module depends on the Serialization module for its operation.
In order to send and receive data, web services need to have it converted to a format that a third-party app understands. This is exactly what the Serialization module does. The conversion process is composed of two phases:
- Turning Drupal entities along with their fields into arrays
- Sending the resulting arrays to an encoder for converting them to the desired format (e.g., JSON)
#3: Hypertext Application Language (HAL)
You might know that the principal format that Drupal 8 core uses is the HAL hypermedia format, and the HAL module is responsible for providing it The module is entirely based on Serialization (extends it) and only adds certain features of its own (two special keywords).
#4: HTTP Basic Authentication
Some resources require protection and thus can’t be accessed by the public at large. The HTPP Basic Authentication module adds a username/password combination to every REST request to bar access to a specific resource for users without proper rights. Remember, however, that the module requires using the secure HTTPS protocol.
So, this is it in a nutshell. Of course, the four core modules provide basic functionality only. If something more complex and enterprise-like is required, you will need to get contributed modules installed as well, including RELAXed Web Services, Services, and others.
That being said, the core modules are sufficient to achieve a whole range of business tasks. So, what benefits exactly can you reap from the Drupal 8 core features for working with web services?
THE MAIN BENEFITS YOUR BUSINESS CAN GAIN FROM DRUPAL 8’s CORE THIRD-PARTY INTEGRATION FEATURES
#1: Reduced Dependence on Contributed Modules
Of course, as we mentioned above, some more complex and resource-intensive integration tasks may call for the use of contributed modules. However, when there’s no contributed module for connecting to a specific system your business requires, the core Drupal features will enable you to use the API that system exposes without having to wait for a contributed module to be built.
#2: Ability to Write and Expose Your Own API
The same core features allow you to write your own API with your own GET and POST parameters and your own response. This API will let external apps, for example, a mobile app, retrieve data from your Drupal site, and, vice versa, send data to your site. This helps you cover a larger audience, which can positively impact your bottom line.
#3: Better Performance and User Experience
These days, many Drupal website owners have been adopting the so-called decoupled approach. It implies the use of the Drupal database along with an external front-end system that’s commonly represented by JS frameworks like React, Vue, or Angular.
The back-end and front-end exchange data via an API. As a result, you get a lightning-fast site with all imaginable interactive features. This increases the engagement rate and improves user experience. The more your visitors enjoy using your site, the better attitude toward your brand you can expect from them.
TO SUM UP
The Drupal 8 core provides efficient third-party integration features through four modules. While merchants can and, in many cases, have to use contributed modules as well to get connected to various external apps, the core capabilities allow them to create their own REST APIs and expose their data to the outside world.
Let’s face it, though: leveraging the power of the core features to the maxium requires professional assistance. Only developers skilled in creating their own APIs and utilizing third-party services can guarantee the seamless integration of your Drupal site with the systems important for your business.
GetDevDone Drupal experts have completed thousands of projects and have wide experience integrating all types of external platforms, including ERPs, CRMs, mobile apps, email marketing software, e-commerce systems, social networks, live chats, video conference applications, and more.
We can create a custom module for connecting your site to the system you want to exchange data with or tweak the existing integration module to suit your evolving needs. We’ll make your Drupal site versatile so that you can manage all your tasks in one location instead of having to switch between dozens of different apps.