WSO2 Organising APIS - wso2

We are using WSO2 API Manager for exposing and securing our API's.
Its working fine.
Now we have actually a lot of API's in WSO2 API Manager. It looks like a long list of API's. Now its hard to find an API and do some changes.
Is there any best practices for organizing them in API manager?May be group them based on functionality or url or anything like that.
Any inbuild support or suggestions?

Related

WSO2 API Manager: Creating SOAP or websocket API changes existing APIs types

I'm using WSO2's API Manager version 2.5.0 (https://github.com/wso2/product-apim/tree/v2.5.0).
Problem:
I create a REST API then create a SOAP API. When I edit the REST API looking at the first page (Design), it shows a SOAP endpoint instead of the REST endpoints. If I then create a websocket API and view the design page of the REST and SOAP APIs, the endpoints aren't shown indicating they are now websocket APIs. If I then create another REST API, viewing the design page of the other APIs shows they are now back to normal.
Question:
What is causing this to happen? Is there a fix for it? Does anyone have information about this? I've done extensive research looking through their docs, their github, stackoverflow, and google searches with no luck.
This is a known issue in 2.5.0 and fixed in 2.6.0.
Edit: My bad. It seems it's fixed after 2.6.0 release.
You can use the development branch[1].
[1] https://github.com/wso2/product-apim/tree/2.x

What is the official way to customize, extend and move the API Publisher and API Store out of the WSO2 API Manager server?

WSO2 reached out to me in Twitter and told me to put a question here if I had one.
My client wants to customize (for now it only means changing the layout of things) the API Publisher and API Store from a WSO2 API Manager 2.0.0.
Since I know that inevitably we will get to the point where the changes are going to be profound and require external libraries for new functionality (we have a library of AngularJS code which I know they will want to use), I want to know:
What is the official, recommended way to customize and extend the web applications for the API Store and the API Publisher? I need to have version control, unit testing, etc.
Is there a way to move these web apps out of the APIM server and into their own server? All our UI applications are hosted in a specific server.
Realistically, how much change can I introduce before make making an awful mess?
Thank you.
You can create new themes and subthemes for API publisher and store UIs. You can refer docs here.
Please note that publisher and store apps are written in Jaggery. You need a Jaggery server to host Jaggery apps.
If you want to add more functionality to the UI, you can either write jaggery, or you'll have to write your own web application (maybe with AngularJS or any other). In that case, you can use APIM REST APIs to talk to APIM backend.

How to call Amazon API Gateway in LibGDX?

I'm developing a game for iOS and Android using LibGDX. I would like to use Amazon Web Services and I haven't found if there is a library or a way to access API Gateway from my (:core) project.
I've worked with API Gateway in Android and iOS native projects and is very easy to implement it because Amazon has SDK Generation for both platforms. But since there's not a way to export for Java, it seems to bee a little tricky to make api calls from the core project.
I tried to use amazon skd for android inside (:core) but it didn't worked.
May be making a direct Http request using HttpURLConnection, but I don't know how to do it and although it won't map the response objects.
I don't have specific experience with LibGDX, but API Gateway helps you generate REST based APIs. There are a number of Java libraries that will help you interact with REST based APIs, such as rest4j. As you note, you will have to either forgo using API Gateway's Models or build your own marshalling code on top whatever solution you use for interacting with your API.

WSO2 API Manager with non-WSO2 ESB?

I have a working system with ESB (non-WSO2 product) already. I'm now trying to integrateWSO2 API Manager into my working system for 3rd party developer.
Is it possible to replace WSO2 ESB in API Manage with existing non-WSO2 ESB?
Yes, you can do that.
The ESB functionality is transparent no matter what is the brand of underlying product implementing it. The API Manager is going to store the endpoints, WSDLs, etc. and those are the same for every ESB implementation.
That's the "beauty" of SOA, its service-oriented, not vendor-oriented.
You can keep the ESB you are using as it is in your setup and use the API Manager to publish/subscribe/manage the API. Its perfectly a valid scenario
Regards,
/Nuwan

Invoking a web service API by using Text Message

Now I am creating an iOS application. I also implemented some web services. My requirement is : "The user should be able to call a web service API by Sending a Text Message(SMS)". After a lot of research I found out that there a provider called Clickatell(http://www.clickatell.com/). But I don't know how can I configure it? Please help me in configuring this. Or Is there any other APIs or SMS gateways providing this service?
Disclaimer, I do developer evangelism part time at Nexmo.
Here are a few SMS APIs that I've used (I've not really used Clickatell, but I've gone through the signup process, and the following APIs seem a lot simpler to use):
Nexmo
Twilio
Tropo
All three APIs are straight forward REST/HTTP APIs.
You can call the API directly from your mobile application, however, you should consider if you really want to then compile your API credentials into your application. It may be better to host a kind pf proxy that your application uses - here's some example code used as a verification service, but it's essentially the same concept: https://github.com/Nexmo/Verify
I would suggest to take a look at Mogreet's new Developer Web Site
Very easy to use REST/HTTP APIs and very powerful. It supports sending SMS/MMS with awesome quality for all media types.