Enunciate を使用して、Resteasy サービスのドキュメントを生成しています。必要なドキュメントを生成することはできますが、いくつかのカスタム パラメータに関して問題があります。
サービス インターフェイスは@QueryParam
、メソッド実装がサポートするすべてのクエリ パラメータをリストするために使用されるカスタム アノテーションで構成されます。カスタム を使用することにした理由については、今は説明したくありません@QueryParam
。それは単なるアーキテクチャ上の決定でした。
Enunciate はカスタムを認識しない@QueryParam
ため、すべての Resteasy メソッドには@QueryParam
パラメーターがありません ( のみ@PathParam
)。
サンプル サービス インターフェイス:
@GET
@Path("{regionId}/{userId}/validate-access")
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@QueryParams(uniqueName = "validatePin", params = {
@QueryParam(param = Param.PIN, isRequired = true),
@QueryParam(param = Param.PIN_TYPE, isRequired = false, valueSet = { "valueA", "valueB" }, defaultValue = "valueA") })
StatusResponseResult validatePin(@Context HttpServletRequest hsr, @PathParam("regionId") int regionId,
@PathParam("userId") int userId, @Context UriInfo info) throws RestApiException;
@QueryParam クラスの実装:
@Retention(RetentionPolicy.RUNTIME)
public @interface QueryParam {
public Param param();
public boolean isRequired() default false;
public boolean canBeEmpty() default true;
public String defaultValue() default "";
public String minValue() default "";
public String maxValue() default "";
public String format() default "";
public String[] valueSet() default {};
}
@QueryParams クラスの実装:
@Retention(RetentionPolicy.RUNTIME)
public @interface QueryParams {
String uniqueName();
QueryParam[] params();
}
@QueryParam
HTML ドキュメントを生成する際に、私のカスタムも考慮するように Enunciate に指示する方法はありますか?