У меня есть некоторые службы REST (потребление и создание приложения /json ), и я использую @TypeHint
для создания документации.
Теперь у меня есть что-то вроде этого:
import javax.ws.rs.core.Response;
...
@Path("/path")
public class MyClass {
@GET
@TypeHint(MyResponse.class)
public Response getIt() {
MyResponse resp = ... ;
return MyBuilder.build(resp);
}
}
но MyResponse
является оболочкой над List<MyType>
.
Мой build
метод из MyResponse
выглядит следующим образом:
public static Response build(Serializable payload) {
return Response.ok(msr).header(...).build();
}
Я хочу использовать непосредственно List<MyType>
вместо MyResponse
. Каков наилучший способ использования TypeHint
в следующем коде?
@GET
@TypeHint(/* TODO */)
public Response getIt() {
List<MyType> myList = ... ;
return MyBuilder.build(myList);
}
Я думал о следующих вариантах:
-
@TypeHint(List.class)
-
@TypeHint(MyType.class)
-
@TypeHint(List<MyType>.class)
→ К сожалению, это не работает из-за стирания стилей Java.
Вопрос:
Существует ли допустимая альтернатива для номера 3?
Даже если тип List
, число 1 не полезно, потому что мой собственный тип должен быть аннотирован с помощью @XmlRootElement
и что List
неизменен (это от JDK).
Существует обходной путь для числа 2, но он не совсем совершенен:
- Используйте номер 2 (просто чтобы иметь доступный пример в сгенерированной документации HTML - описание элемента, содержащегося в этом списке)
-
Укажите, что это символ
List
в Javadoc (например: после слова@return
) (его можно выделить жирным шрифтом, цветами, курсивом и т.д. с помощью HTML-тегов)Например:
/** * ... * @return <strong><font color="blue">List<MyType></font></strong> */
Детали:
- enunciate.version = 1.30.1
- Java 7