According to this article [1] also, it agrees to send only the mandatory details in the response. Otherwise we may need to process over-complicated responses (which contains unwanted information) if we include all API, Application details in Subscription.
[1] http://51elliot.blogspot.com/2014/06/rest-api-best-practices-4-collections.html On Wed, Jul 4, 2018 at 2:51 PM, Sanjeewa Malalgoda <[email protected]> wrote: > If we introduced both API info DTO and application info DTO as attributes > of subscription info DTO it would be bulky(publisher API info DTO will have > lot of unwanted fields for this use case). If we follow rest API best > practices ideally we should send ids of application and API like we do > now. One option is sending display name along with UUID of resource. > > Thanks, > sanjeewa. > > On Wed, Jul 4, 2018 at 12:37 PM Dushani Wellappili <[email protected]> > wrote: > >> Hi all, >> >> According to the current Store REST API of APIM 3.0, using Subscription >> resource[1], we can get the subscription details for a particular API. >> >> The subscription resource is as follows. >> *{* >> *applicationId : "75834e14-d445-4e98-b90a-e2b726718384",* >> >> >> *lifeCycleStatus : "ACTIVE",* >> >> *policy : "Bronze",* >> >> *subscriptionId : "a1439c91-78d9-49e6-bae8-7a514eb250fc"* >> >> *apiIdentifier : "82079086-fd5c-452c-80da-1d0f06dc0252"* >> >> *apiName : "TESTAPI"* >> >> *apiVersion : "1.0.0"* >> >> *}* >> >> In here, the only detail to get information about the subscribed >> application is the *applicationId*. For the API listing view of Store >> API, we need to display the application names subscribed for the particular >> API. >> >> To get that information with the existing implementation, we need to >> first do a REST API call to get all subscriptions (list of Subscription >> DTOs). >> After that, we could either do a REST API call to get application name >> (Application DTO) for the each Subscribed DTO or do a REST API call to get >> all Applications (list of Application DTOs) and iterate it to get only the >> application name of subscribed applications. For both cases, when the >> number of subscriptions and the applications get larger, the number API >> calls we would need will also become larger which could result in a >> performance issue. >> >> The same issue is handled in Publisher REST API by including Application >> and API object in the SubscriptionDAO with required fields populated. >> Please refer the mail thread [2]. >> >> Similarly, we can remove the applicationId and API related properties >> from SubscriptionDTO in Store REST API and include the ApplicationInfoDTO >> and ApiInfoDTO object as well. WDYT? >> >> Would appreciate your comments and thoughts on this. >> >> >> [1] https://github.com/wso2/carbon-apimgt/blob/master/ >> components/apimgt/org.wso2.carbon.apimgt.rest.api.store/ >> src/main/resources/store-api.yaml#L3668 >> [2] [Dev] [APIM_REST_API] What are the properties to include in DTO >> >> >> Regards, >> *Dushani Wellappili* >> Software Engineer - WSO2 >> >> Email : [email protected] >> Mobile : +94779367571 >> Web : https://wso2.com/ >> >> >> > > -- > *Sanjeewa Malalgoda* > WSO2 Inc. > Mobile : +94 712933253 > > <http://sanjeewamalalgoda.blogspot.com/>blog :http://sanjeewamalalgoda. > blogspot.com/ <http://sanjeewamalalgoda.blogspot.com/> > > > > _______________________________________________ > Architecture mailing list > [email protected] > https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture > > -- Chamin Dias Mobile : 0716097455 Email : [email protected] LinkedIn : https://www.linkedin.com/in/chamindias
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
