Swagger for jersey endpoint with form url encoded

时间:2016-01-11 14:38:48

标签: java swagger jersey-2.0

我有一个带有球衣2.17的DropWizard项目,带有一个简单的表单提交端点:

@Path("forms/{form_id}")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@ApiOperation(value = "Submit a form", response = SubmittedForm.class)
@ApiResponses(value = {
    @ApiResponse(code = 200, message = "Valid request - form submitted", response = SubmittedForm.class)
})
public Response submitForm(@PathParam("form_id") String formId, MultivaluedMap<String, String> parameters) {
    ...
}

我使用Swagger(swagger-jersey2-jaxrs 1.5.4)来记录我的API。但是,对于此端点,没有为表单参数生成文档。如果我将MultivaluedMap<String, String>更改为MultivaluedStringMap,则会生成doc但它会被识别为body参数。 我不能将@PathParam用于表单参数,因为此端点将支持多个表单定义,因此密钥未知。

有没有办法使用Swagger正确记录表单提交端点(使用url-encoded params)?

1 个答案:

答案 0 :(得分:0)

swagger规范中不允许使用任意映射,因此在扫描操作时不会检测到它。对于the spec,表单参数只支持可序列化类型。