Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

How-To: Convert SOAP APIs to REST APIs

DZone's Guide to

How-To: Convert SOAP APIs to REST APIs

SOAP APIs weren't designed for integration, with developer UX in mind. The new SOAP Builder tool converts your SOAP-based endpoint into a unified REST API.

· Integration Zone ·
Free Resource

How to Transform Your Business in the Digital Age: Learn how organizations are re-architecting their integration strategy with data-driven app integration for true digital transformation.

SOAP isn’t dead. Not yet, at least. And that’s a pretty tough pill to swallow coming from an API-first product strategy. Consuming SOAP APIs is especially difficult for app developers working with web and mobile applications. We have to keep in mind that some of the older platforms originally built on SOAP APIs were never really designed for public consumption, or even integration via the web. The architecture was strictly designed for the internal use case, and developer UX was an afterthought. SOAP is a strict document based API and while this offers resilience, it can make crafting a valid API cal complicated - especially in the absence of tooling.

SOAP APIs to REST APIsAs the demand for APIs grows and integration use cases evolve over time, it’s important to consider the developer experience. Here at Cloud Elements, we have taken an innovative approach to API integration, making it easier than ever to integrate your application to dozens of other endpoints with a unified REST API. But like I said, SOAP isn’t dead, yet.

This is why I’m excited to share with you the newest edition to our stack of developer tools: SOAP Builder, an extension of our Element Builder. The core purpose of SOAP Builder is to convert your SOAP-based endpoint into a unified REST API. Developers can now leverage SOAP Builder to transform every API they work into a familiar RESTful experience. As one of our developers mentioned to me, “we’re transposing an ugly interface [SOAP] into something that’s user-friendly.”

Converting SOAP APIs to REST APIs

The value of Element Builder is to abstract and unify resources in a given category. You can use Element Builder to import an API, whether they are REST or SOAP, to either build new Elements or extend the capabilities of existing Elements in our catalog. Element Builder is designed to allow you to focus on the data you need, versus the interface, language, or capabilities it inherently offers.

In addition to now being able to import SOAP APIs into Element Builder to create a new integration, SOAP Builder now supports document-oriented and RPC WSDLs. With this format, the endpoint’s operations and messages are described abstractly, and then bound to a concrete definition that is resource-centric.

“WSDL import is super cool -- a smart tool is REST-fying your SOAP interface for you. It gets you most of the way there, and leaves you to your discretion to get your integration up and running. It just works.”

What’s new in Element Builder with SOAP Builder?

  • You can import from WSDL - similar to an import using Swagger for a REST API.
  • Being able to do an import from WSDL import, gets you at least 80% of the way to converting a SOAP endpoint to a REST endpoint.
  • It imports your new endpoint to conform with the predefined Hub API.

SOAP Builder is particularly exciting for an organization that has existing internal SOAP interfaces they want to expose, and rather than investing into developing a new REST API for their company, they can now use Cloud Elements to modernize and extend the life/utility of their API. Truly a great advance in a world where developers want REST.

Make your mark on the industry’s leading annual report. Fill out the State of API Integration 2019 Survey and receive $25 to the Cloud Elements store.

Topics:
integration ,ipaas ,rest api ,app development

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}