Import Backend services description into WSO2 APIM - api

I'm working on a Java project, using SparkJava framework. I made REST web services, and now I'm trying to place WSO2 API Manager in front of my services.
The problem is that I don't know how to import the backend service description into WSO2 API MANAGER. I saw that this is often done with WADL, but in WSO2 APIM documentation (v2.5.0) there is nothing about this.
My goal is to generate some file which contains my Backend service description (I don't know what format should it be, or what tool must I use to do this), and be able to import it in WSO2 API MANAGER as my API documentation.
Is there a way to do this ?

WADL was used sometime back, but now the common and the standard and way of representing a RESTful API is swagger/OAS.
In WSO2 APIM there are several ways you can create a proxy API for your backend service.
1) If you already have a swagger/OAS spec for your backend service, you can import it to APIM.
2) Create API from the scratch. In this approach, you can define resources and there parameters/headers etc. using the publisher UI.

Related

How to automate import API's in azure api management service

I have created instance in Azure API management service and want to import 200+ APIs. Is there any way to automatically import the APIs in portal by writing script or any other way also want to create a product and group the imported APIs?
You can automate deployment of API's by using Azure APIM REST API. You will find everything there. Basically whatever you do in Azure Portal on APIM resource by clicking you can do by calling this REST API.
If you don't feel like calling REST API, you can always use Az.ApiManagement PowerShell Module or az apim Azure CLI - they have more or less the same functionality.
I guess that is it, the question is too broad to give you more specifics.

Integrate WSO2 API Manager with third party api gateway like kong

I´m interested in using the store and the developer portal. In some cases I want to integrate third-party gateway like kong.
The documentation from WSO2 API Manager 2.x says:
- Components usable separately: developer portal can be used to catalog
APIs deployed in third-party gateways
(https://wso2.com/api-management/features/)
Do you have more information about that feature and how to configure it?
Technical this is feasible but requires some work. I've found that someone did it with Intel Expressway Service Gateway.
You would need to implement a custom handler in WSO2 and connect it with Kong. But as the features might differ, the UI may not perfectly fit.
Besides than offering extension points, WSO2 has no real interest in supporting this as the API Gateway is the core component and all of their business models are based on it.

Wso2 API orchestration requirement for API Management

We successfully launch Wso2 API management solution. One of the main functionality of our project is to orchestrate several simple API and make one Meta API. Then we want to publish this Meta API into Wso2 API Management Publisher and make it available to use.
Is any solution to this requirement?
You can do this. If I understand you correct, you only want to publish the meta api as a managed api. Other simple apis won't be published. If so, things are pretty easy.
WSO2 API Manager uses Apache Synapse as the mediation engine (which is used by WSO2 ESB too). This allows to do the chaining. Please go through the following articles.
http://wso2.com/library/articles/2014/03/batch-api-api-chaining-scenario/
https://docs.wso2.com/display/ESB470/Service+Chaining+Example
http://wso2.com/library/articles/2012/09/get-cup-coffee-wso2-way/

WSO2 API Manager: how is "import swagger definition" expected to be used?

We have a service with ~200 API. The API are swagger enabled and accessible at http://localhost:8080/api-docs.
WSO2 AM provides an option to import the swagger definitions.
While importing should we specify the base api-docs URL (http://localhost:8080/api-docs)? In this case all API are imported under a single API (i.e., all 200 API appear under a single API in publisher). Is this the right way? Is there way to import each API separately?
WSO2 API Manager will treat as a single API when it imports a swagger file. If your swagger contains multiple API definitions, you may break it to pieces before importing.
You can import the whole group of 200 API definitions multiple times and drop the one you don't want in WSO2 API Manager UI. This way you will split your big service in multiple WSO2 APIs without "major re-engineering" work.
For example you import your service twice, and you keep the first 100 API definitions in first WSO2 API and the 100 others in second WSO2 API.

WSO2 API Manager - can it convert REST requests to SOAP requests on the backend?

I'm exploring the use of the WSO2 API Manager for our legacy API, which is currently SOAP based. IDeally, I'd like to expose a RESTful interface to our customers and have API Manager convert that to a SOAP request that gets passed to our legacy system. Searching the WSO2 site, I see there's some way to do this using XSLT transformations, but only when using the WSo2 ESB product.
Is there a way to handle this transformation in the API Manager? How? If not, could I somehow take advantage of the ESB product and combine it with the API Manager product? Or is that overkill?
Thanks!
REST to SOAP conversion is a standout feature of the WSO2 ESB. To learn more about it look at the sample given at [1]. The Payload Factory Mediator used in this sample is a much newer type of mediator than the XSLT Mediator and is also more efficient in handling SOAP messages than XSLT Mediator.
The WSO2 API Manager is a platform for publishing, managing and governing APIs. The WSO2 API Manager is built using the componentalized Carbon framework, for which almost all components of the WSO2 ESB are utilized. Therefore technically all that can be done with the WSO2 ESB can be done by the WSO2 API Manager; however without the help of the GUI found in the WSO2 ESB; you will have to use the source view of the configuration which is xml based. But ofcourse to navigate around this obstacle you can always download the WSO2 ESB product (which is also free and open-source) and create all the necessary mediation sequences using the GUI and copy-n-paste the configuration from the WSO2 ESB to the WSO2 API Manager and you are done.
In my opinion it is the WSO2 ESB that you need. In your case I presume you just have one or a few SOAP APIs which you need to expose as REST APIs; you are looking more at the REST-SOAP conversion feature rather than the ability to manage hundreds of APIs. If you do not need the core functionalities of the API Manager such as publishing APIs, versioning, authenticating consumers, throttling based on policies, and monitoring API usage (for a complete list of features look at the product homepage at [2]), then you really do not want the API Manager. But if you have the API Management requirements you can go with WSO2 API Manager. I don't think you should go with the WSO2 API Manager just because you foresee some kind of API Management requirements coming ahead.
Using both the WSO2 ESB fronted by the WSO2 API Manager is also a solution. WSO2 even recommends this architecture if you are performing heavy mediation in the mediation layer. You can even start with the WSO2 ESB alone and later when the proper requirements come, decide to front it with the WSO2 API Manager. Fronting the WSO2 ESB with the WSO2 API Manager is a breeze.
[1] http://docs.wso2.org/wiki/display/ESB403/Sample+800+Introduction+to+REST+API
[2] http://wso2.com/products/api-manager/