Expose Java / PHP / Python functions as REST APIs using Apigee Edge : What's Apigee recommendation ?

Let's say we have functions inside an Application. Unfortunately, Let's say we don't have web services or HTTP endpoints for these functions.

We would like to expose these functions as APIs. Our code resides outside Apigee Edge & We don't want to move this code into Apigee Edge like Java callouts. We would like to expose these functions as REST APIs through Apigee Edge.

Does Apigee have any recommendation on this for various functions written in different languages, Any list of libraries / tools that will help to expose functions as http services ?

PS: I know that Apigee Edge supports Java / Python / Javascript callouts. My code resides outside Apigee Edge & I would like to expose these functions as REST APIs using Apigee Edge without moving the code inside Apigee as callouts.

Solved Solved
1 1 931
1 ACCEPTED SOLUTION

Most companies already have some way of hosting logic. I have met with quite a few who are still dependent upon J2EE servers, so they need all their logic to be in servlet form, or in EJBs. Gah! These old models demand so much scaffolding just to host a simple service.

Some companies are moving away from the heavyweight models and towards more toward micro-services and are exploring their options for setting up some sort of cloud-hosting capability for logic, regardless of the implementation language or platform.

The simplest option I know for hosting logic is Google AppEngine. App Engine is simple and easy to use and allows you to write your code in Java, Python or PHP, the three you mentioned, as well as Golang, .NET, Node, and others.

There are numerous other examples. Google Container Engine will host any app that is containerized in Kubernetes. Suppose you want to write your Java app with Spring. Or nodejs with express. Or .NET with MVC. Or Scala/Akka. Regardless which way you go, if you then containerize the resulting app, you can drop it into GKE and the Google Cloud will manage the instances for you. Azure has a similar-sounding "Azure Container Service". I don't know if it uses k8s or not.

And of course there are the old-school options like Heroku, which lets you manage nodejs or Java apps. I think they have other engines too. And then the full do-it-yourself model with apps that run on VM hosts like Google Compute Engine or AWS EC2 or Azure VMs.

Every different language has a range of options for frameworks and libraries or tools for exposing HTTP services. I won't go into the laundry list but rather refer you to the internet where every other developer seems to have a top-10 list of their own preferred stack.

Apigee is completely agnostic to all of these choices. If the backend service is reachable via HTTP, then Apigee can be used to manage the APIs into it.

**EDIT** - I should mention that providing an easy way to host logic is something that Apigee is exploring, right now. It would be an alternative to al of the above options, and probably more suited to a team that did not have an existing logic-hosting solution, and is looking for something really easy to use, yet scalable. We will have more to say about this soon. @Jeremy Whitlock FYI.

View solution in original post

1 REPLY 1

Most companies already have some way of hosting logic. I have met with quite a few who are still dependent upon J2EE servers, so they need all their logic to be in servlet form, or in EJBs. Gah! These old models demand so much scaffolding just to host a simple service.

Some companies are moving away from the heavyweight models and towards more toward micro-services and are exploring their options for setting up some sort of cloud-hosting capability for logic, regardless of the implementation language or platform.

The simplest option I know for hosting logic is Google AppEngine. App Engine is simple and easy to use and allows you to write your code in Java, Python or PHP, the three you mentioned, as well as Golang, .NET, Node, and others.

There are numerous other examples. Google Container Engine will host any app that is containerized in Kubernetes. Suppose you want to write your Java app with Spring. Or nodejs with express. Or .NET with MVC. Or Scala/Akka. Regardless which way you go, if you then containerize the resulting app, you can drop it into GKE and the Google Cloud will manage the instances for you. Azure has a similar-sounding "Azure Container Service". I don't know if it uses k8s or not.

And of course there are the old-school options like Heroku, which lets you manage nodejs or Java apps. I think they have other engines too. And then the full do-it-yourself model with apps that run on VM hosts like Google Compute Engine or AWS EC2 or Azure VMs.

Every different language has a range of options for frameworks and libraries or tools for exposing HTTP services. I won't go into the laundry list but rather refer you to the internet where every other developer seems to have a top-10 list of their own preferred stack.

Apigee is completely agnostic to all of these choices. If the backend service is reachable via HTTP, then Apigee can be used to manage the APIs into it.

**EDIT** - I should mention that providing an easy way to host logic is something that Apigee is exploring, right now. It would be an alternative to al of the above options, and probably more suited to a team that did not have an existing logic-hosting solution, and is looking for something really easy to use, yet scalable. We will have more to say about this soon. @Jeremy Whitlock FYI.