Избегайте избыточности с помощью @Path и @ PathParam / @ BeanParam в CXF - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть некоторые конечные точки 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
}

Первым шагом может быть создание констант для двух параметров и использование их в обоих местах для улучшения читабельности, но это не решает проблему избыточности.

Есть ли способ указатьэлементы пути, которые соответствуют элементам компонента в самом компоненте, чтобы избежать этой избыточности?Или есть какой-то другой / лучший подход, чтобы использовать оба значения вместе?

...