@Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { CharSequence pathInfo = request.getPathInfo(); if (pathInfo == null) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "No path"); return; } Iterator<String> pathComponents = SLASH.split(pathInfo).iterator(); String userID; List<String> itemIDsList; try { userID = pathComponents.next(); itemIDsList = Lists.newArrayList(); while (pathComponents.hasNext()) { itemIDsList.add(pathComponents.next()); } } catch (NoSuchElementException nsee) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, nsee.toString()); return; } String[] itemIDs = itemIDsList.toArray(new String[itemIDsList.size()]); unescapeSlashHack(itemIDs); OryxRecommender recommender = getRecommender(); try { float[] estimates = recommender.estimatePreferences(userID, itemIDs); output(request, response, estimates); } catch (NotReadyException nre) { response.sendError(HttpServletResponse.SC_SERVICE_UNAVAILABLE, nre.toString()); } }
@Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { CharSequence pathInfo = request.getPathInfo(); if (pathInfo == null) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "No path"); return; } Iterator<String> pathComponents = SLASH.split(pathInfo).iterator(); String userID; String itemID; try { userID = pathComponents.next(); itemID = pathComponents.next(); } catch (NoSuchElementException nsee) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, nsee.toString()); return; } if (pathComponents.hasNext()) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Path too long"); return; } userID = unescapeSlashHack(userID); itemID = unescapeSlashHack(itemID); OryxRecommender recommender = getRecommender(); try { output( request, response, recommender.recommendedBecause(userID, itemID, getNumResultsToFetch(request))); } catch (NoSuchUserException nsue) { response.sendError(HttpServletResponse.SC_NOT_FOUND, nsue.toString()); } catch (NoSuchItemException nsie) { response.sendError(HttpServletResponse.SC_NOT_FOUND, nsie.toString()); } catch (NotReadyException nre) { response.sendError(HttpServletResponse.SC_SERVICE_UNAVAILABLE, nre.toString()); } catch (IllegalArgumentException iae) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, iae.toString()); } catch (UnsupportedOperationException uoe) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, uoe.toString()); } }