WSO2 APIM 3.0.0 API subscription via application issue | Bug

Hi Everyone, I am writing this post regarding one of the strange issues I was facing with WSO2 API Manager 3.0.0. Below is the summary and workaround I did to overcome the same.

Problem Statement

I have registered 55+ APIs through publisher portal and created one application per API i.e. total 55 Applications. I have created a new application and was trying to subscribe to one of the existing APIs but unfortunately, that API wasn't available in the subscription list. However, the same was visible with published status in publisher portal and devportal as well but during the subscription via the application, it wasn't available. I can see only 24 APIs in the list where I can subscribe them via Application. Rest of APIs wasn't visible so I wasn't able to subscribe them for the new application.

Observation

As per initial observation, I have checked the developer console to see the API being called to get the number of APIs in the dropdown list. It was 23 this time-



I have copied the endpoint, it was a GET request without authorization i.e. an open endpoint with query parameters as limit, offset and status. I changed the value from 25 to 50 and I was able to see all the APIs.


Workaround

Based on the observation, it is clear that the API endpoint parameters takes the values from DB with published status and 25 records at a time-

Store API: https://localhost:9443/api/am/store/v1.0/apis?limit=25&offset=0&query=status%3Apublished

So I decided to unpublish all the APIs that are coming in the dropdown, and here the magic happened. Since only published state APIs are coming through the list so earlier APIs stopped coming (being unpublished). Further, I followed below steps to subscribe to the API with the required Application-
1. List down the APIs that are coming during the subscription process.
2. Go to respective API one by one via the publisher portal and change the API state to "Demote to Create" via 'Lifecycle' tab.

3. Repeat step 2 for the remaining 23 APIs and see if required API is coming in the subscription list via -

Developer portal > Application > Subscription > Manage Subscription section

Once required API comes in the list, Subscribe the same with the required application. In addition, you can also check the availability of the API via Store API as specified above by changing the offset in the query parameter.

4. Once the task gets completed, we need to change the state of all APIs whom we did "Demote to Create" i.e. to Publish them.


So, In this way, I have been able to subscribe the API to the application that wasn't coming in the list earlier.

Comments

  1. Usually I never comment on blogs but your article is so convincing that I never stop myself to say something about it. You’re doing a great job Man learn Oracle SOA Online Training

    ReplyDelete
  2. Very helpful post!! Thanks for providing this useful information. It will be very useful for my business of subscription management software.

    ReplyDelete
  3. Simply wish to say your article is as astonishing. The clarity in your post is simply great, and I could assume you are an expert on this subject. Same as your blog i found another one Oracle Project Portfolio Management Cloud Software .Actually I was looking for the same information on internet for Oracle PPM and came across your blog. I am impressed by the information that you have on this blog. Thanks a million and please keep up the gratifying work.

    ReplyDelete

Post a Comment

Popular posts from this blog

Oracle SOA Suite- Implementing Email Notification

Oracle SOA Suite 12c- PKIX path building failed & unable to find valid certification path to requested target

Migration of Oracle SOA Suite Composite from 11g to 12c