В REST / Java, что я должен вернуть, если мой объект нулевой?

У меня есть простой POJO, который я аннотировал с аннотациями REST следующим образом:

@GET
@Path("/domains/{domainid}")
@Override
public Domain getDomain(@PathParam("domainid") UUID domainID) throws Exception {
    logger.info("Retrieving domain "+ domainID);
    Domain d = null;
    try {
        d = MyClient.getDomains().get(domainID.toString());
        logger.debug("Returning "+d.getName());
    } catch (Exception e) {
        logger.error("Could not retrieve domain", e);
    }
    return d;
}

Обратите внимание, что оператор log, включающий d.getName (), может на самом деле бросить NPE, который затем перехватывается и регистрируется. Это не красиво, но здесь дело не в этом.

В конечном счете, имеет ли d значение или нет, я возвращаю его.

В случае нулевого значения мой клиент получает код состояния HTTP 204. Вот что отображает wget:HTTP request sent, awaiting response... 204 No Content

Как ни странно, мои браузеры не сдвинулись ни на дюйм. Они по-прежнему отображают предыдущую страницу (я полагаю, имеет смысл оставаться на месте, когда контент не получен). Я бы ожидал пустую страницу.

Три вопроса:

HTTP 204 правильный ответ, который будет возвращен?как я могу контролировать это с помощью аннотаций? Через другую конфигурацию?Какова стандартная практика REST в отношении нулевых объектов?

Спасибо

=== РЕДАКТИРОВАТЬ ===

На эту же тему есть большой вопрос:Верно ли возвращать 404, когда ресурс REST не найден?

Ответы на вопрос(1)

Ваш ответ на вопрос