Я рекомендую использовать represent(Variant)
, потому что тогда вы будете использовать функциональность согласования контента, предоставляемую реализацией по умолчанию handleGet(Request, Response)
.
Кстати, в последнее время я начал использовать синтаксис на основе аннотаций вместо переопределения методов суперкласса, и мне это нравится. Я нахожу это понятнее, проще и гибче.
Например:
@Post('html')
Representation doSearch(Form form) throws ResourceException {
// get a field from the form
String query = form.getFirstValue("query");
// validate the form - primitive example of course
if (query == null || query.trim().length() == 0)
throw new ResourceException(Status.CLIENT_ERROR_BAD_REQUEST, "Query is required.");
// do something
SearchResults searchResults = SearchEngine.doSearch(query);
// return a HTML representation
return new StringRepresentation(searchResults.asHtmlString(), MediaType.TEXT_HTML);
}
Преимущества использования этого подхода включают в себя то, что входящее представление автоматически преобразуется в полезную форму, метод может быть назван так, как имеет смысл для вашего приложения, и просто сканируя класс, вы можете увидеть, какие методы класса обрабатывают какие методы HTTP, для каких представлений.