如何处理 Google Cloud Endpoints 和 Java 的字段值约束?
How to handle fields' values constraints on Google Cloud Endpoints and Java?
我来自 Spring 引导(使用 Jersey)来制作 API REST,如果我想从一个字段中获得一些值有任何约束,我可以很容易地处理,比如有一些最大值或不为 null图书馆 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 Endpoints,我尝试使用同一个库,但它只是忽略它并继续使用该方法。
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) {
...
}
}
我要发送一个空体。
为什么忽略它?是否有某种方法或库可以限制 Google Cloud Endpoints 上的字段值?
谢谢!
对 REST API 调用执行由 javax.validation 注释表示的检查是 Spring 引导框架中实现的一项功能。
截至 2019 年 10 月,Java 的 Cloud Endpoints Frameworks 未实施 javax.validation 检查。此外,它不支持等效功能。您可以在 https://github.com/cloudendpoints/endpoints-java/issues
上提交功能请求
我来自 Spring 引导(使用 Jersey)来制作 API REST,如果我想从一个字段中获得一些值有任何约束,我可以很容易地处理,比如有一些最大值或不为 null图书馆 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 Endpoints,我尝试使用同一个库,但它只是忽略它并继续使用该方法。
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) {
...
}
}
我要发送一个空体。
为什么忽略它?是否有某种方法或库可以限制 Google Cloud Endpoints 上的字段值?
谢谢!
对 REST API 调用执行由 javax.validation 注释表示的检查是 Spring 引导框架中实现的一项功能。
截至 2019 年 10 月,Java 的 Cloud Endpoints Frameworks 未实施 javax.validation 检查。此外,它不支持等效功能。您可以在 https://github.com/cloudendpoints/endpoints-java/issues
上提交功能请求