我有一些目前看起来像这样的REST端点:
@Path("/{type}/{name}/doSomething")
public void doSomething(@PathParm("type") final String type, @PathParm("name") final String name);
通过在方法级别的@Path
批注和参数级别的@PathParam
批注中指定参数,您已经注意到了冗余。
由于type
和name
总是在一起并且用于多个端点,因此我想将它们聚合到一个@BeanParam
Java bean中。但这使得@Path
与Bean内部参数之间的关系更加难以发现,因为@PathParam
批注将移至Bean类:
@Path("/{type}/{name}/doSomething")
public void doSomething(@BeanParam final TypeAndName typeAndName);
使用此Java bean类:
public class TypeAndName {
@PathParam("type")
private String type;
@PathParam("name")
private String name;
// getters, setters, equals, hashcode
}
第一步可能是为两个参数创建常量,并在两个地方都使用它们以提高可读性,但这不能解决冗余问题。
是否有任何方法可以在bean本身中指定与bean成员相对应的path元素,以避免这种冗余?还是有其他/更好的方法可以将两个值保持在一起?