@@ -529,9 +529,10 @@ func (s *RestServer) CreateWebService() {
529529 Returns (http .StatusOK , "OK" , []cache.Score {}).
530530 Writes ([]cache.Score {}))
531531 ws .Route (ws .GET ("/recommend/{user-id}" ).To (s .getRecommend ).
532- Doc ("Get recommendation for user." ).
532+ Doc ("Get recommendation for user. Set X-API-Version: 2 to return scores. " ).
533533 Metadata (restfulspec .KeyOpenAPITags , []string {RecommendationAPITag }).
534534 Param (ws .HeaderParameter ("X-API-Key" , "API key" ).DataType ("string" )).
535+ Param (ws .HeaderParameter ("X-API-Version" , "API version (set to 2 to return scores)" ).DataType ("string" )).
535536 Param (ws .PathParameter ("user-id" , "User ID" ).DataType ("string" )).
536537 Param (ws .QueryParameter ("category" , "Category of the returned items (support multi-categories filtering)" ).DataType ("string" )).
537538 Param (ws .QueryParameter ("write-back-type" , "Type of write back feedback" ).DataType ("string" )).
@@ -541,9 +542,10 @@ func (s *RestServer) CreateWebService() {
541542 Returns (http .StatusOK , "OK" , []string {}).
542543 Writes ([]string {}))
543544 ws .Route (ws .GET ("/recommend/{user-id}/{category}" ).To (s .getRecommend ).
544- Deprecate ().Doc ("Get recommendation for user." ).
545+ Deprecate ().Doc ("Get recommendation for user. Set X-API-Version: 2 to return scores. " ).
545546 Metadata (restfulspec .KeyOpenAPITags , []string {RecommendationAPITag }).
546547 Param (ws .HeaderParameter ("X-API-Key" , "API key" ).DataType ("string" )).
548+ Param (ws .HeaderParameter ("X-API-Version" , "API version (set to 2 to return scores)" ).DataType ("string" )).
547549 Param (ws .PathParameter ("user-id" , "User ID" ).DataType ("string" )).
548550 Param (ws .PathParameter ("category" , "Category of the returned items" ).DataType ("string" )).
549551 Param (ws .QueryParameter ("write-back-type" , "Type of write back feedback" ).DataType ("string" )).
@@ -843,6 +845,7 @@ func (s *RestServer) getRecommend(request *restful.Request, response *restful.Re
843845 }
844846 // parse arguments
845847 userId := request .PathParameter ("user-id" )
848+ apiVersion := strings .TrimSpace (request .HeaderParameter ("X-API-Version" ))
846849 n , err := ParseInt (request , "n" , s .Config .Server .DefaultN )
847850 if err != nil {
848851 BadRequest (response , err )
@@ -900,6 +903,10 @@ func (s *RestServer) getRecommend(request *restful.Request, response *restful.Re
900903 }
901904 }
902905 // Send result
906+ if apiVersion == "2" {
907+ Ok (response , scores )
908+ return
909+ }
903910 Ok (response , results )
904911}
905912
0 commit comments