Java - проблема примера Dropwizard Swagger - PullRequest
0 голосов
/ 30 сентября 2018

Я использую 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 не устанавливает значения по умолчанию в теле:

enter image description here

В конфигурации 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
}

Но почему он не устанавливает значения примера, поэтому на самом деле вы можете выполнить запрос с демонстрационными данными в нем?

Спасибо

...