hi all, Ratings and Comments impact on the impression of the API Store users of the APIs published in the API Store. The popularity, importance of the API, the pros and cons of the API can be evaluated through the Ratings and Comments given to the APIs.
To achieve that in APIM 3.0.0, following REST APIs are identified to be implemented. *Ratings :* 1. Retrieve the average rating of the API, rating given by the logged in user and the rating list. (A composite list will be retrieved as the response.) 3. Adding a new rating to an API (Updating the existing rating will also be handled through this.) *Comments :* 1. Retrieve the list of Comments of an API 2. Retrieve an individual Comment of an API 3. Add a new Comment to an API 4. Update an existing Comment of an API 5. Delete a particular Comment Database schema is updated with adding two tables as follows. AM_API_RATINGS RATING_ID API_ID RATING USER_IDENTIFIER CREATED_BY CREATED_TIME UPDATED_BY LAST_UPDATED_TIME AM_API_COMMENTS COMMENT_ID API_ID COMMENT_TEXT USER_IDENTIFIER CREATED_BY CREATED_TIME UPDATED_BY LAST_UPDATED_TIME The COMMENT_ID and API_ID are UUIDs which are primary keys. These are further described as user stories in redmine [1] under Epic #5963 <https://redmine.wso2.com/issues/5963> and the public JIRA can be found at -[2]. We have done a design review for this and please find the design review comments in [3]. The REST API definition and schema level implementation is complemented and following are left to be completed in this feature. 1. DAO level implementation for retrieving and storing values. 2. Permission model considerations - As we discussed within the team, to rate an API or to Comment an API, the user should have* at least* the permission to view the API. He should have the API_ID in hand to manipulate all REST APIs which goes under Ratings and Comments. Assuming that permission check for API is happening prior to every operation we are safe in that side. 3. Other than that, as discussed in the design review we should calculate the average rating of each of the API using a separate Database operation and set the rating to the APIInfo object where we do the listAllAPIs call as well. (For per API scenario, We are going to use a separate REST call as per in discussion [4]) [1] https://redmine.wso2.com/issues/5963 [2] <https://github.com/wso2/carbon-apimgt/pull/3879> https://wso2.org/jira/browse/APIMANAGER-5684 <https://www.google.com/url?q=https%3A%2F%2Fwso2.org%2Fjira%2Fbrowse%2FAPIMANAGER-5684&sa=D&sntz=1&usg=AFQjCNEKLLoVtUwWONla9d_Gw8FD6iVdlQ> [3] Updated Invitation: [APIM][C5][Design Review] REST APIs for Rating and Commen... @ Tue Mar 28, 2017 12pm - 12:45pm (IST) (WSO2 Engineering Group) [4] Retrieving Rating value of API in the GET_API resource API -- Thanks & Regards, *Chamalee De Silva* Software Engineer *WS**O2* Inc. :http://wso2.com/ Office :- *+94 11 2145345 <%2B94%2011%202145345>* mobile :- *+94 7 <%2B94%2077%202782039>1 4315942* -- Thanks & Regards, *Chamalee De Silva* Software Engineer *WS**O2* Inc. :http://wso2.com/ Office :- *+94 11 2145345 <%2B94%2011%202145345>* mobile :- *+94 7 <%2B94%2077%202782039>1 4315942*
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
