Java端点层

Java端点层,java,rest,Java,Rest,我有一个由端点层、服务层和dao组成的REST应用程序 因此,端点层通常具有应用程序所需的所有注释,如@Path、@POST、@GET等 检查端点中的参数是否为null或空是一种好做法 例如 @Path("/app") public class EndpointLayerBean implements EndpointLayer { @EJB private ServiceLayer serviceLayer; @GET @Path("eq/{a}/{b}/eq")

我有一个由端点层、服务层和dao组成的REST应用程序

因此,端点层通常具有应用程序所需的所有注释,如@Path、@POST、@GET等

检查端点中的参数是否为null或空是一种好做法

例如

@Path("/app")
public class EndpointLayerBean implements EndpointLayer {

   @EJB
   private ServiceLayer serviceLayer;

   @GET
   @Path("eq/{a}/{b}/eq")
   public Response getValue(@PathParam("a") String a, @PathParam("b") String b)
   {
     if(a == null || b == null){
        return Response.status(Response.BAD_PARAMETER);
     } else{
        return serviceLayer.doSomething(a, b);
     }
   }

}

是的,在少数情况下,它完全取决于您的数据类型。 如果字段没有值,则应为空。
这一点很琐碎,但有一些细微差别。不存在的数字、字符串通常表示为空。但是没有值的布尔字段也应该被视为false。

是的,在少数情况下,它完全取决于您的数据类型。 如果字段没有值,则应为空。
这一点很琐碎,但有一些细微差别。不存在的数字、字符串通常表示为空。但是,没有值的布尔字段也应该被视为false。

是的,这是正确的地方来清理基本一致性请求。如果必须咨询DB,则将使用带有
@Transactional
注释的下一层。

是的,这是正确的地方,可以对基本一致性要求进行清理。如果必须咨询DB,则将使用带有
@Transactional
注释的下一层。

是的,这是有意义的。但您应该检查这将允许您通过如下注释指定有效参数:

@GET
@Path("eq/{a}/{b}/eq")
public Response getValue(@PathParam("a") @NotNull String a, @PathParam("b") @NotNull String b) 
{
    return serviceLayer.doSomething(a, b);
}

是的,这是有道理的。但您应该检查这将允许您通过如下注释指定有效参数:

@GET
@Path("eq/{a}/{b}/eq")
public Response getValue(@PathParam("a") @NotNull String a, @PathParam("b") @NotNull String b) 
{
    return serviceLayer.doSomething(a, b);
}

一般来说,这是进行验证检查的正确层。但是,如果路径参数{a}和/或{b}为空,您如何检查访问权限。您的路径应该是“/app/eq///eq”?我想举个例子,在你的例子中,你总是会得到“404-未找到”?一般来说,这是进行验证检查的正确层。但是,如果路径参数{a}和/或{b}为空,您如何检查访问权限。您的路径应该是“/app/eq///eq”?我想举个例子,在你的例子中,你总是会得到“404-未找到”?