Например, у меня есть класс хранилища, подобный этому.
@RepositoryRestResource
public interface FooRepository extends JpaRepository<Foo, Integer> {
Optional<Foo> findByBarId(@Param("barId") Integer barId);
}
Это создает конечную точку поиска с путем http://hostname/foo/search/findByBarId{?fooId}
Когда я получаю доступ к этому URL без каких-либо параметров, я получаю404
что я думаю, все в порядке.
Однако я бы скорее отправил 400 для этого типа или ошибок, поскольку моему бизнесу определенно понадобится параметр для этого API.
Я пытался использовать @javax.validation.constraints.NotNull
Optional<Foo> findByBarId(@Param("barId") @NotNull Integer barId);
, а также @org.springframework.lang.NonNull
Optional<Foo> findByBarId(@Param("barId") @NonNull Integer barId);
Обе аннотации не работали.Конечно, это не работает, потому что эти аннотации сами по себе являются лишь метаинформацией, которая не принимается во внимание Spring-Framework.
В документации не было ничего продемонстрировано для поведения проверки параметров.(Они говорят только о жизненном цикле сущности проверка )
Есть ли какой-нибудь прямой способ, которым я могу достичь такого поведения?
Я использую spring-boot
2.0.4, если это поможет.