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

Reply via email to