Re: [Apiman-user] APIMan question
by Eric Wittmann
Hi Bob, thanks for the question. I have CC'd the apiman mailing list in
case the answer is interesting to others.
Hopefully I understand the question, which is around aggregation of
various disparate APIs into a single application specific API. I think
that apiman does something similar to what you are suggesting, in that
all API endpoints end up going through the API Gateway rather than
directly to the various disparate services.
In other words, if a single application may consume N different services
provided through apiman, *all* of those services are ultimately consumed
through the root API Gateway endpoint (e.g.
http://gatewayhost.com/api-gateway/*).
That isn't quite the same as creating an application-specific API, but
is perhaps functionally equivalent.
At the moment we do not have any specific plans to implement API
aggregation in apiman, but if there were community interest in it then
we would certainly consider adding it to the roadmap. :)
-Eric
On 1/21/2015 1:44 PM, Bob McWhirter wrote:
> Heya Eric—
>
> So I’m looking into Microservices, and one thing that always pops up is an "API Gateway” which might consume N services and expose them as a single service.
>
> The use-case being that while a fat application (desktop, web, etc) might talk to 15 different services, something on a constrained network (such as Mobile) would rather have an application-specific API that handles aggregating some subset of those 15 services into a single service, reducing round-trips.
>
> Is this a use-case planned for by APIMan? Or would APIMan be placed in front of an API Aggregator?
>
> Thanks!
>
> -Bob McWhirter
>
9 years, 11 months
Re: [Apiman-user] APIMan - questions / use-case
by Eric Wittmann
Hi Anton - thanks for the note. :)
I checked the mailing list subscriber list and you are there, so perhaps
it worked. I'm CC'ing the mailing list on this reply.
As a matter of fact, custom policies is a very important feature of
apiman. That said, version 1.0.1.Final (the current latest) does not
support an *easy* way to create a custom policy. It is possible to do
it, but you need to add your custom classes to the classpath of the API
Gateway.
The good news is that the next major version of apiman (1.1.0.Final)
will include a plugin feature that will allow you to easily contribute
plugins (which contain custom policies).
I don't have a release date yet for when we will move from 1.0.x to
1.1.x. However, because you have shown interest in the feature, what I
can do is move the feature from 1.1.x to 1.0.x. So it will be released
in the next minor release of apiman (1.0.2.x).
Sorry if that was confusing.
The bottom line is that I will backport the plugin feature from 1.1 to
1.0 so that it will be available in the next release (1.0.2.Final). I
will also make sure to thoroughly document it in the Developer Guide
before doing the release.
Until all of that happens, you can have a look at *how* to create an
apiman plugin by going here:
https://github.com/apiman/apiman-plugins/tree/master/test-policy
An apiman plugin is a WAR with a little bit of extra sauce.
Specifically it needs a file here:
META-INF/apiman/plugin.json
Example:
https://github.com/apiman/apiman-plugins/blob/master/test-policy/src/main...
Additionally in order for your custom policy (or policies) to be
discovered you need one or more file in:
META-INF/apiman/policyDefs/
Example:
https://github.com/apiman/apiman-plugins/blob/master/test-policy/src/main...
-Eric
On 1/19/2015 3:04 AM, Anton Hughes wrote:
> Hi Eric
>
> Firstly, thank you for your excellent work on APIMan, and Overlord. Two
> really exciting projects. Its really great to see how these have developed.
>
> Secondly - I tried to subscribe to the mailing list, but I never
> received a confirmation, so excusing me for writing to you directly.
>
> And thirdly - a question!
>
> *Custom Policy Types*
> Is it possible to create a custom policy type?
>
> Our use case is, the more our business partner calls a method, the more
> of a discount they get. To elaborate, when they call the
> 'buySubscription()' method from
>
> * 1 - 20x they get 0% discount
> * 21 - 40x they get 3% discount
> * 41 - 60x they get a 6% discount etc
>
>
> (note to self - could be good to use Drools decision tables for this).
>
> Then, when they call 'cancelSubscription()' we need to reduce the count
> and re-calculate.
> *Do you have documentation - or can you point us in the right direction
> to learn about developing a custom policy type?*
> *
> *
> Thanks Eric!
> *
> *
> *
> *
>
>
>
>
>
>
> --
> *
>
> **
>
> *
> *
>
> Anton Hughes
>
> Co-founder
>
> ah(a)magick.nu <mailto:ah@magick.nu>
>
> www.magick.nu <http://www.magick.nu>
>
>
>
>
>
> *
>
>
> *
>
> **
>
> *
9 years, 11 months
Released: 1.0.1.Final
by Eric Wittmann
What? You mean there's a 1.0.1.Final version out already?!
Well it turns out that we released 1.0.0.Final back in December, but we
didn't really announce it for fear of it getting lost in the holiday
shuffle.
So we've actually had some time to work on bug fixes and new features
for 1.0.1.Final. And now it's out, so you can enjoy the new stuff.
Have a look at the roadmap for the full list of what's new:
http://www.apiman.io/latest/roadmap.html
But I would say that the biggest change is that you can now optionally
mark a Service as "public", which means clients can invoke it without
first creating a Service Contract! This adds a dramatically simplified
use-case to what apiman supports.
http://www.apiman.io/latest/user-guide.html#_services
-Eric
9 years, 11 months
Released: 1.0.0.Final of API Management
by Eric Wittmann
The apiman team is happy to announce that version 1.0.0.Final has been
released!
Now that we've got the initial public release done, we're hoping to get
a couple of releases done per month from now on. Information,
tutorials, documentation, downloads etc can all be found here:
http://www.apiman.io/
Lots of work to do, but it's a good start!
-Eric
9 years, 11 months