If you use Azure products, API Management is a great solution. It solves many of the problems of externalizing web services. For example, when you need versioning, establish a developer portal and subscription keys. It provides a good UI for developer portals. The developer can register, request, and manage subscriptions easily in the portal. Another thing we liked was the high level of customization.
You can use API Management for back-end APIs. You can place the APIM in front to give extra layers of security. APIM is great for lift and shift migrations, too, by fine-tuning the policies in the APIM.
The downside is, first, the cost. You need to pay up front for the service. So if you are a small business, it can be expensive because the cost increases with each API. If you are already using Azure, you need premium Azure B2C to integrate with your system.
AWS API Gateway (API GW) might be better for organizations that already use other AWS resources. It is a great tool for web services development. If you need to integrate external tools, AWS API Gateway provides an extra security and authentication layer for front-end web services. For instance, as an HTTP front end for internal resources. We use API GW for front-end web services and to integrate static resources.
Although we are overall happy with API GW in terms of security and rapid development, it leaves some room for improvement. If you need to create a private API, it can be very difficult. Certifying clients can be a hassle, as well as trying to debug multiple services.
Azure API Management is a strong solution for large organizations, particularly if leveraging Azure products already. AWS API Gateway is more versatile and the pricing is better.
I have worked on 5 API products each product has its own pros & cons. I would choose Apigee over all others because it provides pure API Management Tools & Services. Apigee also provides a lot of OOTB Policies which can be applied with little or no change. API Development & Exception handling is too easy in Apigee compared to Mulesoft.
Go for Mulesoft if ESB capabilities are required and unlike APigee we can do a lot of customization & create custom policies in Mulesoft. Mule also provides a lot of third-party connectors OOTB which can be used to quickly integrate with other systems. We can also create custom connecters as per our requirement.
Apigee supports Swagger & Mule supports RAML. So if your existing services/APIs produce/use Swagger go for Apigee. Anyway, we have many scripts which convert Swagger to RAML & vice-versa.
A very good Developer/API Portal is required for exposing the APIs securely & well-documented. If this is an important requirement, I would recommend Apigee over Mulesoft. Apigee's Drupal-based Portal provides a lot of features which Mulesoft Portal lacks.
Apigee also provides features/tools on Analytics & Bot-Detection for improving your APIs consumption.
Enterprise Architect & Principal Consultant at a tech services company with 10,001+ employees
22 March 18
It depends on your needs. I would recommend Apigee if you are don’t need an Integration Platform/ ESB for any heavy lifting. Mulesoft Cloudhub comes with one common engine “Mule Anypoint Runtime Engine” which is the core and offers ESB capabilities including a lot of OOTB connectors.
Now if your southbound/ downstream has a lot of legacy applications requiring message/ file based integrations, then it makes sense to use Mulesoft, wrap these legacy-interfaces as HTTP/Web end-points and wire them using API Manager.
On the other hand, if you downstream is already on HTTP endpoint/ microservices, then Apigee is far more robust than API Manager. You can simply scale it to 200tps without any hassle. The deployment model of Apigee is lot cleaner as you can scale the “Message Processor & Message Router” (part of Edge gateway) separately from Dev Portal & Management server. The analytics is far superior to Mule and you far more options when wiring API than Mule. For example, the concept of IP-whitelisting, data policies (as filters) is pretty cool in Apigee. Another key point is you can have a hybrid model in Apigee with on-prem Message Router(s) to deploy multiple clusters of microservices. I have not used BaaS but it gives you the ability to create “Application Network” very similar to Mule except it looks richer.
Finally, with zookeeper, clustering of Apigee Edge server is more robust than Mulesoft, especially on higher loads. My verdict is Apigee if Integration is NOT a need.
BTW, I felt API Manager’s Anypoint Exchange is a better collaboration platform for sharing API definition within enterprise and outside. It's actually nice ?. But with Salesforce acquisition of Mulesoft, please understand their long-term roadmap and support/upgrade (especially if you going with On-Premise and not on cloud).