У меня есть некоторые конечные точки REST, которые в настоящее время выглядят так:
@Path("/{type}/{name}/doSomething")
public void doSomething(@PathParm("type") final String type, @PathParm("name") final String name);
Вы уже можете заметить избыточность, указав параметры в аннотации @Path
на уровне метода и снова в @PathParam
аннотация на уровне параметров.
Так как type
и name
всегда собираются вместе и используются для нескольких конечных точек, я хочу объединить их в Java-бин @BeanParam
.Но это делает связь между @Path
и параметрами внутри компонента еще сложнее, поскольку аннотации @PathParam
переместятся в класс компонента:
@Path("/{type}/{name}/doSomething")
public void doSomething(@BeanParam final TypeAndName typeAndName);
С этим классом компонента Java:
public class TypeAndName {
@PathParam("type")
private String type;
@PathParam("name")
private String name;
// getters, setters, equals, hashcode
}
Первым шагом может быть создание констант для двух параметров и использование их в обоих местах для улучшения читабельности, но это не решает проблему избыточности.
Есть ли способ указатьэлементы пути, которые соответствуют элементам компонента в самом компоненте, чтобы избежать этой избыточности?Или есть какой-то другой / лучший подход, чтобы использовать оба значения вместе?