Hi Rajith,

I think what we need to include here is not the full API object, but an
object that has minimal information of an API or an Application such as
name and version (E.g like the list of minimal API info objects we are
returning from GET /apis ). So I guess it will not do harm although we do
not filter that out since it does not contain any sensitive information.

IMO 2nd approach is cleaner than the first approach. May be we can rename
them as apiInfo and applicationInfo, just a thought.

Thanks!

On Thu, Mar 23, 2017 at 11:19 PM, Rajith Roshan <raji...@wso2.com> wrote:

> Hi
>
> On Thu, Mar 23, 2017 at 11:33 AM, Anuruddha Liyanarachchi <
> anurudd...@wso2.com> wrote:
>
>> Hi,
>>
>> As per the current publisher REST API [1], there is a resource to get the
>> subscription for a given API.
>>
>> This returns the following subscriptionDTO with subscription details and
>> IDs of other objects associated with it (applicationId, apiId).
>>
>> @JsonProperty("subscriptionId")
>> private String subscriptionId = null;
>>
>> @JsonProperty("applicationId")
>> private String applicationId = null;
>>
>> @JsonProperty("apiId")
>> private String apiId = null;
>>
>> @JsonProperty("subscriptionTier")
>> private String subscriptionTier = null;
>>
>> @JsonProperty("subscriptionStatus")
>> private SubscriptionStatusEnum subscriptionStatus = null;
>>
>> For the UI we need the application name and API name to be displayed
>> along with the subscription status.
>>
>> In order to do get APP_NAME and API_NAME, we need to do two additional
>> network calls with apiID and applicationID to two different resources.
>>
>> Therefore if we are to display 10 subscriptions in the UI we need to do
>> 21 network calls.
>>
>>  1. One network call to get list of subscriptions which return List with
>> 10 subscription DTO objects (1 network call)
>> *publisher/v1/subscriptions?api_id=fe855359-b3fd-4bbf-8f5c-6fb3f020011e*
>>
>>  2. For each subscriptionDTO, we need to do 2 network calls to get API
>> name and Application Name. (2 * 10 = 20 network calls)
>> *publisher/v1/apis?api_id=fe855359-b3fd-4bbf-8f5c-6fb3f020011e*
>> *publisher/v1/applications?**application_id*
>> *=fe855359-b3fd-4bbf-8f5c-6fb3f020011e*
>>
>> There are two ways to handle this.
>>
>> 1. Include the API_NAME and APPLICATION_NAME in the same DTO.
>> @JsonProperty("applicationName")
>> private String applicationName = null;
>>
>> @JsonProperty("apiName")
>> private String apiName = null;
>>
>>
>> 2. Include the *API* *object* and *Application* *object* in the
>> subscription DAO with required fields populated.
>> @JsonProperty("applicationObj")
>> private Application applicationObj = null;
>>
>> @JsonProperty("apiObj")
>> private API apiObj = null;
>>
>> IMO 2nd approach is more suitable. Please share your thoughts.
>>
>
> Are we going to filter out API object from subscription dto if the
> particular user only have "apim:subscription_view" scope .(not
> apim:api_view scope)
>
>>
>> [1] https://github.com/wso2/carbon-apimgt/blob/master/compon
>> ents/apimgt/org.wso2.carbon.apimgt.rest.api.publisher/src/
>> main/resources/publisher-api.yaml
>> <https://github.com/wso2/carbon-apimgt/blob/master/components/apimgt/org.wso2.carbon.apimgt.rest.api.publisher/src/main/resources/publisher-api.yaml#L3400-L3429>
>> --
>> Thanks and Regards,
>> Anuruddha Lanka Liyanarachchi
>> Software Engineer - WSO2
>> Mobile : +94 (0) 712762611 <+94%2071%20276%202611>
>> Tel      : +94 112 145 345 <+94%2011%202%20145345>
>> anurudd...@wso2.com
>>
>> --
>> *Thanks and Regards,*
>> Anuruddha Lanka Liyanarachchi
>> Software Engineer - WSO2
>> Mobile : +94 (0) 712762611
>> Tel      : +94 112 145 345
>> a <thili...@wso2.com>nurudd...@wso2.com
>>
>
>
>
> --
> Rajith Roshan
> Software Engineer, WSO2 Inc.
> Mobile: +94-72-642-8350 <%2B94-71-554-8430>
>



-- 
Malintha Amarasinghe
Software Engineer
*WSO2, Inc. - lean | enterprise | middleware*
http://wso2.com/

Mobile : +94 712383306
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to