Как обработать ограничения значений полей на конечных точках Google Cloud и Java? - PullRequest
0 голосов
/ 03 октября 2019

Я пришел из Spring boot (с Джерси), чтобы сделать API REST, где я мог бы легко справиться, если бы я хотел, чтобы какое-то значение из поля имело какие-либо ограничения, например, иметь какое-то максимальное значение или не быть нулевым с библиотекой javax.validation.

import javax.validation.Valid;
import javax.validation.constraints.NotNull;

...

@PUT
@Produces(MediaType.APPLICATION_JSON)
public Response gestionarVenta(@Valid @NotNull(message = CONSTRAINT_BODY_NOT_NULL) final ProductoCompradoDTO productoCompradoDTO) {
   ...
}

Однако я сейчас проверяю конечные точки Google Cloud и пытался использовать эту же библиотеку, но она просто игнорирует ее и переходит к методу.

import javax.validation.Valid;
import javax.validation.constraints.NotNull;

@Api(name = "echo", version = "v1", namespace = @ApiNamespace(ownerDomain = "echo.example.com", ownerName = "echo.example.com", packagePath = "")
// ...
)
public class MyApi {
    @ApiMethod(name = "echo")
    public Message echo(@Valid @NotNull(message = "cant be null") Message message, @Named("n") @Nullable Integer n) {
        ...
    }
}

I 'Я посылаю пустое тело.

Почему оно игнорирует его? Есть ли какой-нибудь способ или библиотека для наложения ограничений на значения полей в конечных точках Google Cloud?

Спасибо!

1 Ответ

1 голос
/ 05 октября 2019

Выполнение проверок, выраженных аннотациями javax.validation в вызовах API REST, является функцией, реализованной в среде Spring Boot.

Начиная с октября 2019 года, в Cloud Endpoints Frameworks для Java не реализованы проверки javax.validation. Кроме того, он не поддерживает эквивалентные функции. Вы можете подать запрос на функцию https://github.com/cloudendpoints/endpoints-java/issues

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...