Apigee as a forward proxy

Not applicable

Hello,

I am researching on API gateways to see what benefits could we get when they are configured as a forward proxy. By forward proxy I mean the gateway would intercept all the third party api calls made by my application. In a trail with WSO2 I could see that logging, caching and monitoring are some features that could be centralized. I would like to get a deeper understanding for some of the below aspects of a forward proxy

  1. Can apigee act as a forward proxy? If so how can it provide rate limiting, quota management, policy enforcement when acting as a forward proxy?
  2. Can apigee gateway batch API requests made by my application to third party vendor?
  3. Can it perform data type conversions i.e. from SOAP to REST or vice versa? If so how does it achieve this feature?
  4. Can it be configured to manage failover if the API vendors provide multiple api endpoints?
  5. What other benefits can one could get when configuring apigee as a forward API proxy?

I would appreciate if you could share your inputs on the above points

Thanks!

0 11 2,428
11 REPLIES 11

Dear @JGeek, Welcome to Apigee Community 🙂

Thanks @Anil Sagar

Dear @JGeek ,

Apigee API Platform is just more than simple API Gateway. I would term it as an Intelligent API Platform. Let me share why it's called Intelligent API Platform than a simple API Gateway.

Yes, Apigee Edge (API Gateway) sits in between your application & backend server and acts as a gateway.

Q: Can Apigee act as a forward proxy?

Yes, Absolutely. You will create API Proxies on Apigee Edge that talks to your backend server (Your APIs). API Proxies are exposed to client APP. So, All the traffic through APIs flows through Apigee Edge Platform to backend server and then back from Backend Server -> Apigee Edge -> Client App. Please check below image which demonstrates same. For more information refer our docs here.

1492-screen-shot-2015-11-17-at-74334-pm.png

Q : If so how can it provide rate limiting, quota management, policy enforcement when acting as a forward proxy?

Apigee Provides simple & configurable policies that helps you do rate limiting, quota management, policy enforcement and many other things. We have 30 + policies to do Traffic Management, Security, Mediation. And we also have extension policies using which you can write your own custom policy using javascript, python, java. You can find more about policies here & attaching policies to API Proxies here.

1493-proxy-flow-diagram-steps2.png

Q : Can Apigee gateway batch API requests made by my application to third party vendor?

Apigee Edge just sits in between Client App & Backend server. If you would like to call third party API & then call your backend with information from third party API, Yes, It's possible. We have a policy called service callout. It's called mashup & we support it.

Q : Can it perform data type conversions i.e. from SOAP to REST or vice versa? If so how does it achieve this feature?

Yes, Absolutely. Apigee Edge has out of the box support for same. Please check the documentation here.

Q : Can it be configured to manage failover if the API vendors provide multiple api endpoints?

You will have complete control of request & response pipeline in Apigee Edge. If you would like to change response if backend fails / serve response from cache its possible.

I didn't get what exactly you meant "API vendors provide multiple API endpoints", An example will help to better answer same.

Q : What other benefits can one could get when configuring Apigee as a forward API proxy?

Great Question, Same will help me explain why Apigee is more than a gateway & called intelligent API Platform.

  • We provide intelligent analytics & predictive insights of your APIs.
  • We have monetization component available with Apigee Edge, that will help you monetize your APIs.
  • We provide developer services that integrate with Apigee Edge, Which will help you onboard your API developers quickly using a developer portal.
  • We provide BaaS (Backend As A Service) data store, which will help mobile app developers to quickly build mobile apps using Apigee Backend.
  • Apigee Insights provide predictive analytics on top of your APIs.
  • More importantly, Apigee Edge is all about
    • Availability at Scale,
    • Efficiency at Scale,
    • Intelligence at Scale

We do have products like API Health & Apigee Sense that works with API Eco System. I think of Apigee API platform as a platform that covers entire digital value chain.

1494-screen-shot-2015-11-17-at-90715-pm.png

Thanks @Anil Sagar for the detailed reply. I have further queries which I would appreciate if you could through some light on So I understand that Apigee can act as a forward proxy. For all external third party library calls I make I would have to define a corresponding API proxy. For e.g. I would be defining two API proxies on Edge if my application makes api calls to twitter and yammer, right? The docs mention that "API proxies decouple the app-facing API from your backend services, shielding those apps from backend code changes" When acting as a forward proxy, how can it decouple my application code? For e.g. When my application calls the twitter API proxy, can apigee shield my application from twitter API changes? When acting as a forward proxy, how would a security policy benefit our application? For e.g. When making calls to twitter, yammer, youtube etc can authentication for all these api calls be centralized? Apigee provides monetization benefits which includes reporting and billing. When acting as a forward proxy, what reports does apigee create for all the third party api calls made by my application? for e.g. Would it be able to create reports that summarize the number of api calls made according to the rate plan configured? About the API platform, since my use case is around a forward proxy can you provide more clarity as what use cases would benefit from features like analytics and predictive insights? Do you have case studies of clients using apigee as a forward proxy? Thanks!

@Anil Sagar - It seems the formatting is getting lost in my replies. Should we continue this discussion over email?

@JGeek

Answer is Yes, for most of your questions.

I would suggest you to get in touch with our sales / technical engineers for more in depth analysis if you are considering Enterprise Apigee Edge. Please keep us posted if you have any specific technical questions related to Apigee Edge in community here.

@Anil Sagar - Some of the above questions were technical in nature. For instance - When acting as a forward proxy, how can apigee decouple my application code?

There are others too but we can discuss one at a time for the sake of simplicity

@JGeek , Our technical team will get in touch with you to clarify your questions, Please check your inbox for more details. @sriki77

@JGeek

Can you give me your e-mail or any other contact details. I have mailed you anyway on the registered sharklasers email here.

I have sent a mail to @sriki77 for follow up.

Thank you @sriki77 for great answers, Reposting here,

So I understand that Apigee can act as a forward proxy. For all external third party library calls I make I would have to define a corresponding API proxy. For e.g. I would be defining two API proxies on Edge if my application makes api calls to twitter and yammer, right?

Yes and No. API proxy defines an endpoint for the client. If endpoint can be like regex/basepath (similar to context path in webapps); client can use the same basepath and API proxy can switch the call to twitter or yammer based on the path parameter after the basepath. If it is not possible to switch then we need to have 2 different API proxies.

The docs mention that

"API proxies decouple the app-facing API from your backend services, shielding those apps from backend code changes"

When acting as a forward proxy, how can it decouple my application code? For e.g. When my application calls the twitter API proxy, can apigee shield my application from twitter API changes?

The API exposed by proxy endpoint can be anything custom. Since proxy has the support for data transformation - you can transform the input request to the twitter API request. Now if the twitter API changes in a way that your input request is still valid - then you need to change your transformation logic(in apigee) only. The client can still continue to use the same custom API you have exposed. If the change is massive to change your input too, then there is no option - your client will be impacted.

When acting as a forward proxy, how would a security policy benefit our application? For e.g. When making calls to twitter, yammer, youtube etc can authentication for all these api calls be centralized?

Yes the authentication/authorization can be centralized. Please take a look at Apigee security policies that can be used in proxies. You can use facilities like key value maps/secure vault to store the mapping of the user you have authenticated and the credential that needs to be used on his behalf to make calls to backend services like you have mentioned.

Apigee provides monetization benefits which includes reporting and billing. When acting as a forward proxy, what reports does apigee create for all the third party api calls made by my application? for e.g. Would it be able to create reports that summarize the number of api calls made according to the rate plan configured?

Analytics by default includes statistics of API calls, errors, HTTP codes and drill-down based on various dimensions. Monetization support helps in identifying what is business transaction - which Api calls are - helps in determining the usage based on these.

About the API platform, since my use case is around a forward proxy can you provide more clarity as how would analytics, predictive insights

My suggestion is you play around with a free account(https://enterprise.apigee.com) provided by Apigee - you will see for your self the features available.

Do you have case studies of clients using apigee as a forward proxy?

This is something our sales/pre-sales team can help you with. BTW - we are platform vendor - so our pre-sales team is very much technical - so please feel free to converse with them.

@JGeek , Keep us posted if you have any queries.