Ответная полезная нагрузка : вы можете создать собственный рендер для управления возвращаемым форматом: https://docs.vespa.ai/documentation/result-rendering.html
HTTP-код состояния : правила определения кода состояниявозвращаемое значение:
Если результат не содержит ошибок (Result.hits (). getError () == null): возвращается 200 OK.
Если Результат содержит ошибки и не содержит регулярных обращений: Если код ошибки любого ErrorMessage в Result (Result.hits (). GetErrorHit (). ErrorIterator ()) является «КОДОМ ОШИБКИ WEB-СЕРВИСА», первымиз них возвращается.В противном случае, если это «HTTP СОВМЕСТИМЫЙ КОД ОШИБКИ», его отображение возвращается.В противном случае возвращается 500 INTERNAL_SERVER_ERROR.
Если Результат содержит ошибки и также содержит действительные совпадения: то же, что и выше, но по умолчанию возвращается 200 OK вместо 500.
КОДЫ ОШИБКИ ВЕБ-СЛУЖБЫ:
200, 301, 302, 307, 400, 401, 403, 404, 405, 406, 408, 428, 429, 431, 500, 501, 502, 511
КОДЫ ОШИБКИ, СОВМЕСТИМЫЕ HTTP:
com.yahoo.container.protect.Error.BAD_REQUEST -> Http code 400
com.yahoo.container.protect.Error.UNAUTHORIZED -> Http code 401
com.yahoo.container.protect.Error.FORBIDDEN -> Http code 403
com.yahoo.container.protect.Error.NOT_FOUND -> Http code 404
com.yahoo.container.protect.Error.INTERNAL_SERVER_ERROR -> Http code 500
com.yahoo.container.protect.Error.INSUFFICIENT_STORAGE -> Http code 507
С этой информацией вы можете написать компонент Searcher (https://docs.vespa.ai/documentation/searcher-development.html), который устанавливает сообщение ErrorMessage в Result, соответствующее желаемому HTTP-состоянию.
Пример реального мира см., Например, в поисковике ограничения скорости, поставляемом в комплекте с Vespa: https://github.com/vespa-engine/vespa/blob/master/container-search/src/main/java/com/yahoo/search/searchers/RateLimitingSearcher.java#L133