What is APIGee?
Apigee Corporation is a software development company specializing in API management and predictive analytics, which was acquired by Google in 2016.
Apigee is a platform for API development and management. It provides an abstraction or interface for securely managing the distribution of a publisher's APIs. It currently appears to be the benchmark in this market segment.
Main Features
Deployment with Apigee hybrid
With Apigee hybrid, publishers can choose where their APIs are hosted: on-premise, on Google Cloud, or hybrid. It allows for management of the production environment, using custom security infrastructure while also monitoring the developer portal.
API-oriented Integration with Apigee Integration
The publisher connects data and applications and exposes them as APIs, leveraging a unified platform on the cloud.
Monetizing Digital Resources with APIs
APIGee allows you to monetize digital resources to create new revenue streams by connecting payment solutions and integrating them into developer portals.
Microservices Management as APIs
The Apigee API management platform complements Istio and Envoy by extending native API management to a microservices stack.
Planned Test - Apigee Developer Portal Kickstart Distribution
This Drupal distribution lets you quickly create a new Apigee developer portal using Drupal 8.x. As a reminder, a distribution is a set of Drupal modules (extensions, modules), pre-configured and integrated to meet a specific need. A distribution is meant to be ready to use with a theme (template/graphic design) that is also pre-configured.
The distribution includes:
- Installation of the Apigee Edge module for integration with Apigee Edge organizations;
- Integration of the Apigee API Catalog module for managing API documentation;
- Optional installation and customization of the Apigee Monetization module, a dependency of the Apigee Edge module.
After reviewing the composer.json file (listing the modules and dependencies used), it appears that:
- The distribution uses few modules outside of the three main Apigee modules listed above (Edge, Catalog, Monetization);
- The other modules are standard (e.g. Paragraphs, PathAuto, Better Exposed Filters);
- The theme is based on the Bootstrap CSS framework via the Radix theme engine but is limited to version 4 (currently at version 5);
- This is a Drupal 8.x distribution (though the main modules are stated as compatible with Drupal 9.x).
As it stands, we believe this distribution is above all a quick way to test the solution but adds little extra value compared to simply installing/configuring the three main modules it comprises.
Additionally, the current template engine is outdated and may become a hindrance or a limitation in the future if you want to move away from the Bootstrap ecosystem.
We did not choose this solution for deploying the relevant APIs in order to maintain full control of the instance and to facilitate maintenance and scalability.
Selected Test - Our Proposal - Custom Development Based on Apigee Modules
We recommend starting with a custom development approach, but based on the set of contributed Apigee modules included in the Kickstart.
Certainly, there would be an initial time loss compared to using the distribution, however, this solution guarantees :
- Initial development on Drupal 9.x (Drupal 8.x end-of-life at the end of 2021);
- Increased flexibility to add other modules and customize the site beyond just being a portal, with no risk of breaking the distribution or waiting for updates;
- Independence in the chosen theming solution (and frontend integration habits).
Key considerations - Apigee module compatibility with Drupal 9.X - The main modules are currently compatible with Drupal 9:
- Apigee Edge
8.x-1.24, released August 2, 2021
Drupal compatible: ^8.7.7 || ^9 - Apigee API Catalog
8.x-2.6, released August 3, 2021
Drupal compatible: ^8.8.0 || ^9
Although announced as Drupal 9 compatible, this module did not work when we installed it. - Apigee Monetization
Only the monetization module, although announced as Drupal 9 ready, does not have the Drupal 9 compatible label.
8.x-1.11, released June 1, 2021
This last module is not required for the site launch and can be integrated later once it is fully compatible, and if a payment solution integration becomes necessary.
Specific Features Proposed for the Drupal 9 Instance
We propose to develop the API Portal based on the set of contributed Apigee modules (also present in the distribution):
- Apigee Edge;
- Apigee API Catalog.
Apigee Edge
The Apigee Edge module connects a Drupal 8/9 site to Apigee Edge to create a developer portal: users who register are added to the Drupal site and will also be added as developers in Apigee Edge. This module includes the following sub-modules:
- API product RBAC: allows administrators to configure access permissions for API products;
- Teams: allows developers to be organized into teams;
- Debug: allows administrators to configure and manage Apigee debug logs.
Apigee API Catalog
This module creates a new content type called “API Doc”. You can add new API docs under Content > API Catalog in the admin menu. Once added, the API name and description for each API Doc will be listed in the “APIs” menu item on the site using a Drupal view. Other node access control modules can be used to restrict access to API docs. You can customize the API catalog list, API documentation pages, and the rendering used for OpenAPI specifications.
API Content Type
Creation of a specific content type with 3 tabs:
- API Doc (retrieved from the API Catalog module);
- Additional fields defined with the editor;
- Documentation: using the API Catalog module and Swagger UI Field Formatter.
- Reference to one or more taxonomy terms for filtering;
Taxonomies - Classification of APIs (to be specified with the project team).
Rights and User Role Management
- Registration/login forms;
- Integration with Apigee via the Apigee Edge module;
- Configuration of API developer rights;
- Personal page + edit form.
Templates
- API list view with taxonomy filters;
- Highlight block (e.g., latest published APIs);
- API detail page.
In comparing the two solutions, it appears that favoring contributed modules over the distribution allows for greater design and development flexibility. While awaiting project progress, you can consult the relevant site:
https://developer.michelin.com/
Resources
Official APIgee site: https://cloud.google.com/apigee
Some courses/tutorials: https://fr.coursera.org/courses?query=apigee
APIgee and Drupal: https://docs.apigee.com/api-platform/publish/drupal/open-source-drupal-8