Open Source Projects Further RESTful API-Based Development

Open source projects are emerging to further software development practices based on RESTful APIs, which are becoming more instrumental in providing app back-end services and other functionality.

To establish standards and guidance for how REST APIs are described, SmartBear Software recently launched an open source project under governance of The Linux Foundation called the Open API Initiative (OAI). Meanwhile, other vendors are open sourcing their own homegrown API-based projects, as DreamFactory Software Inc. has done with its back-end for mobile, Web and Internet of Things (IoT) applications.

REST, which stands for REpresentational State Transfer, is the primary architectural style underlying the Web, allowing communication over the HTTP protocol with verbs such as GET, POST, PUT and DELETE.

With the OAI, the software quality tools company and partners such as Google, IBM and Microsoft will work with other industry players to advance a SmartBear specification for RESTful APIs called Swagger. The project's Twitter site describes Swagger as "a simple open-source framework for describing, producing, consuming and visualizing RESTful Web services using JSON and Ajax."

"The goal of the OAI specification is to define a standard, language-agnostic interface to REST APIs which allows both humans and computers to discover and understand the capabilities of the service without access to source code, documentation, or through network traffic inspection," a project Web site states. "When properly defined, a consumer can understand and interact with the remote service with a minimal amount of implementation logic. Similar to what interfaces have done for lower-level programming, Swagger removes the guesswork in calling the service."

Working with RESTful APIs
[Click on image for larger view.] Working with RESTful APIs (source:

Now in version 2.0, the Swagger ecosystem includes tools such as Swagger UI, a collection of Web tech assets; a YAML-based editor and SDK code generators that turn API specs into client software development kits or server-side code; and resources such as server integration options and services to provide API management, Platform-as-a-Service (PaaS) functionality and more.

SmartBear, which claims more than 350,000 monthly downloads of Swagger, is donating the Swagger Specification to the open source community while it continues development investments.

"The model used by SmartBear for the Open API Initiative is similar to the Open Container Initiative recently launched by Docker," SmartBear said in a statement last week. "Similar to the Open Container Initiative, the Open API Initiative is being organized as a Linux Foundation Collaborative Project. In addition to SmartBear, founding members of the Open API Initiative include Google, IBM, Microsoft, Capital One, Intuit, PayPal, Apigee, 3Scale and Restlet."

Working with the SwaggerHub API Registry
[Click on image for larger view.] Working with the SwaggerHub API Registry (source: SmartBear Software)

Many Swagger components are hosted on GitHub, including the aforementioned UI, a JavaScript library, code samples and more.

Open Source DreamFactory
GitHub is also the place where you can now find the DreamFactory 2.0 Application and other software donated to the open source community by the Campbell, Calif., company that provides the back-end infrastructure that developers can hook in to their mobile and Web apps to provide services such as single sign-on, user management, access control and more.

"This second-generation version of the DreamFactory platform has been re-architected for maximum performance at high transaction volumes, and provides numerous enhancements that make it easier for developers to more quickly build and scale modern mobile, Web and IoT applications that rely on RESTful access to a growing number of backend data sources and Web services," the company said in a statement last week. Those services, in addition to the ones already mentioned, include APIs to access data in SQL or NoSQL stores, work with files and e-mail, provide automatic push notifications to mobile devices and more.

The software is designed to secure API endpoints and provide customization features to tailor API requests and responses as needed.

DreamFactory Architecture
[Click on image for larger view.] DreamFactory Architecture (source: DreamFactory Software)

Developers use DreamFactory by downloading the project's free source code and connecting to data sources, whereupon a palette of reusable REST APIs are generated for working with that data source or service, along with live documentation. For example, with SQL-based projects alone, DreamFactory provides more than 40 different RESTful APIs. The APIs can then be used to complete an application with REST or JSON, with sample apps provided to guide development targeting major frameworks such as iOS, Android, JavaScript, AngularJS, the Microsoft .NET Framework, Titanium and others.

DreamFactory also supports the Swagger spec.

"Finally, we doubled down on our support for Swagger," exec Bill Appleton said in a blog post last week. "The new version of DreamFactory has an enhanced UI that allows you to create the parameters and request or response format for your custom services. Then your custom service will appear in the API Docs just like the regular services generated by DreamFactory. The interface you design will also be used to validate the passed parameters and request or response information."

The company also quoted IDC analyst Al Hilwa on the project. "To enable modern mobile, cloud and IoT applications, organizations are seeking to have a cleaner separation between backend data sources and front-end development," Hilwa said. "Organizations are increasingly looking for an enterprise-grade REST API back-end that connects to any data source and gives front-end developers the RESTful services they need at the start of projects."

As evidenced by SmartBear and DreamFactory, those back-ends are increasingly being developed in the open source community.

About the Author

David Ramel is an editor and writer for Converge360.