Yes I too think we shouldn't return the full representation of the resource
in the list mode. Partial representation would be enough. Document in[1]
explain this.

[1]
http://51elliot.blogspot.com/2014/06/rest-api-best-practices-4-collections.html

On Fri, Mar 24, 2017 at 12:03 AM, Rajith Roshan <[email protected]> wrote:

>
>
> On Thu, Mar 23, 2017 at 11:50 PM, Malintha Amarasinghe <[email protected]
> > wrote:
>
>> 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.
>>
> +1
>
>>
>> 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 <[email protected]> wrote:
>>
>>> Hi
>>>
>>> On Thu, Mar 23, 2017 at 11:33 AM, Anuruddha Liyanarachchi <
>>> [email protected]> 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/ma
>>>> in/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>
>>>> [email protected]
>>>>
>>>> --
>>>> *Thanks and Regards,*
>>>> Anuruddha Lanka Liyanarachchi
>>>> Software Engineer - WSO2
>>>> Mobile : +94 (0) 712762611
>>>> Tel      : +94 112 145 345
>>>> a <[email protected]>[email protected]
>>>>
>>>
>>>
>>>
>>> --
>>> 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 <+94%2071%20238%203306>
>>
>
>
>
> --
> Rajith Roshan
> Software Engineer, WSO2 Inc.
> Mobile: +94-72-642-8350 <%2B94-71-554-8430>
>



-- 
Harsha Kumara
Software Engineer, WSO2 Inc.
Mobile: +94775505618
Blog:harshcreationz.blogspot.com
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to