Я использую Dropwizard 1.3.5 с пакетом com.smoketurner.dropwizard-swagger.И, похоже, что-то не так в конфигурации для запросов.
У меня есть следующее PoJo:
@JsonIgnoreProperties(ignoreUnknown = true)
@ApiModel
public class PageCreation {
@NotEmpty
@JsonProperty("page_default_title")
@ApiParam(value = "super awesome page", defaultValue = "super awesome page", required = true)
private String pageDefaultTitle;
@NotEmpty
@ApiParam(value = "page-slug", defaultValue = "page-slug", required = true)
@JsonProperty("page_default_slug")
private String pageDefaultSlug;
@NotEmpty
@ApiParam(value = "Amazing Website Title", defaultValue = "Amazing Website Title", required = true)
@JsonProperty("default_seo_title")
private String pageDefaultSeoTitle;
@JsonProperty("default_seo_keywords")
@ApiParam(value = "Amazing, Great, Awesome", defaultValue = "Amazing, Great, Awesome", required = false)
private String defaultSeoKeywords;
@JsonProperty("default_seo_description")
@ApiParam(value = "This site is the best site in the world", defaultValue = "This site is the best site in the world", required = false)
private String defaultSeoDescription;
public PageCreation() {}
В моем ресурсе у меня есть следующий маршрут:
@Path("/pages")
@Api(value = "/pages", description = "Create, Edit, Get and Filter Pages")
@Produces(MediaType.APPLICATION_JSON)
public class PageResource {
private static Logger log = LoggerFactory.getLogger(PageResource.class);
private final PageDAO pageDAO;
public PageResource(PageDAO pageDAO) {
this.pageDAO = pageDAO;
}
@POST
@Timed
@ExceptionMetered
@Path("/create")
@ApiOperation(
value = "Create a new Page",
notes = "This route allows you to create a new page.",
response = BasicResponse.class
)
public Response createNewPage(@NotNull @Valid PageCreation page,
@Context HttpHeaders httpHeaders) {
String requestId = httpHeaders.getHeaderString("x-transactionid");
if (requestId == null) {
requestId = UUID.randomUUID().toString();
}
log.info(requestId + ": got new request to create a page");
return Response.status(200).build();
}
Это прекрасно работает с аннотациями Swagger, но вконфигурация swagger не устанавливает значения по умолчанию в теле:
В конфигурации swagger загружается правильный объект / модель:
PageCreation{
page_default_title string
readOnly: true
page_default_slug string
readOnly: true
default_seo_title string
readOnly: true
default_seo_keywords string
readOnly: true
default_seo_description string
readOnly: true
}
Но почему он не устанавливает значения примера, поэтому на самом деле вы можете выполнить запрос с демонстрационными данными в нем?
Спасибо