SANTA CLARA, Calif.—Zend has announced the launch of a new open-source project called Apigility, which is known as an opinionated API builder.
Launched at ZendCon, the PHP 2013 Conference here, the Apigility project has a goal of providing an easy way to create and maintain high-quality API-based applications.
Apigility uses the Zend Framework as its engine, enabling developers to easily create APIs with REST and RPC services without worrying about how the framework itself works. The built-in events under the hood of Zend Framework enable developers to easily expand the functionality of their apps. But developers need not be Zend Framework experts—in fact, they don’t need to know Zend Framework at all, the company said. Leveraging the Apigility user interface to build APIs does not require prior knowledge of any PHP framework, including Zend Framework.
Zend is bringing forward Apigility as an open-source project so that users can augment the functionality and quality of APIs created. By building Apigility on top of Zend Framework, Zend is benefiting from the innovation of the Zend Framework community.
Zend officials maintain that an API-based architecture is essential to the agile and mobile delivery goals of most development teams. Separating the presentation logic between the client and server provides the flexibility to support multiple form factors and integrate with third parties.
APIs also future-proof the application such that capabilities can be easily reused at a later point, without having to refactor the entire system, Zend officials said. By implementing this type of architecture, companies gain the flexibility and agility to best support the Web and mobile apps, in which the application’s data and services are coming from multiple back-end systems and are consumed from multiple different front-end devices and form factors.
However, when compared with simple HTML-based apps, API-based apps are complex to design. They are a relatively new form of application architecture, and so many best practices and standards are still emerging. Best practices for an API-centric design must address areas such as error handling and versioning, which are complicated and time-consuming to do correctly.
Thus, recognizing the challenges of building API-centric architectures, Zend released Apigility, which provides a user interface for building APIs in a simple, standardized way, leveraging industry standards and best practices.
Developers can create an API and wire in any number of the nuts-and-bolts services that Apigility provides. This automates some decisions, making the coding process easier and less cumbersome. Zend has selected recommended best practices for API creation in terms of authentication, error handling, filtering, validation and documentation.
Apigility’s role does not end with the creation of the API; it is designed to allow developers to evolve their APIs as requirements change, and add, update or remove APIs. It also has full support for versioning.
Some of Apigility’s highlights will include error handling, validation, content negotiation and versioning.
When an error happens on the server side, Apigility immediately reports the response involved and the nature of the problem to the API consumer. Apigility’s detailed problem report enables programmers to easily parse and understand what happened, rather than remain mystified as to the source of their API error and spend hours finding it. Additionally, developers may tailor error reports to deliver as much or as little information as desired.
Meanwhile, Apigility makes it simple for developers to make sure functionality exists for their end users. It ensures that all data coming into an API is valid. If not, Apigility sends a single response in a predictable format that returns all errors. API consumers know up-front when they did something wrong.
Apigility also enables developers to know immediately when something is wrong with submitted data. It will verify whether each client is capable of viewing an application, and whether data submitted to an API is of an acceptable content type. If not, Apigility sends back a response indicating that the API can’t provide a representation, or cannot understand the data. As a result, APIs become simpler for third parties and partners to work with.
And Apigility supports multiple versions of the same API, with added, altered or removed services—and enables developers to easily support both old and up-to-date clients at the same time, and fully automates version negotiation. The user interface allows developers to manage all versions of the API from one centralized place and provision new versions as needed.
“The entire Zend Framework project would not be where it is without the community around it,” Zend Framework Project Lead Matthew Weier O’Phinney said in a statement. “Having constant input from our community helps us think outside the box and accomplish much more than we could as a smaller team. Hundreds of developers already actively contribute to the Zend Framework, and we are excited to leverage that community to build momentum around tackling API-centric development—one of the most important focus areas for developers today.”
Early access to the Apigility project can be found here. Moreover, Zend said it welcomes contributions. Particular areas of near-term focus include authentication and input validation, and improving the user experience of the user interface.