Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用表单url编码的jersey端点的招摇过市_Java_Swagger_Jersey 2.0 - Fatal编程技术网

Java 使用表单url编码的jersey端点的招摇过市

Java 使用表单url编码的jersey端点的招摇过市,java,swagger,jersey-2.0,Java,Swagger,Jersey 2.0,我有一个jersey 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 =

我有一个jersey 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) {
    ...
}
@Path(“forms/{form_id}”)
@使用(MediaType.APPLICATION\u FORM\u URLENCODED)
@ApiOperation(value=“提交表单”,response=SubmittedForm.class)
@ApiResponses(值={
@ApiResponse(code=200,message=“有效请求-表单已提交”,response=SubmittedForm.class)
})
公共响应submitForm(@PathParam(“form_id”)字符串formId,多值映射参数){
...
}
我正在使用Swagger(Swagger-jersey2-jaxrs1.5.4)来记录我的API。但是,对于该端点,没有为表单参数生成文档。如果我将
MultivaluedMap
更改为
MultivaluedStringMap
,则会生成文档,但会将其识别为主体参数。 我不能对表单参数使用
@PathParam
,因为此端点将支持多个表单定义,因此键未知



是否有任何方法可以使用Swagger正确记录表单提交端点(使用url编码的参数)?

Swagger规范中不允许使用任意映射,因此在扫描操作时不会检测到该映射。根据,表单参数只支持可序列化类型。

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

不,我是说。您可以将其作为url端编码表单数据的参数,实际上可能不是。我真的不确定它将如何工作。是的,它似乎对我也不起作用-招摇过市没有改变+它打破了我的测试;)你现在有决心了吗?不,我是说。您可以将其作为url端编码表单数据的参数,实际上可能不是。我真的不确定它将如何工作。是的,它似乎对我也不起作用-招摇过市没有改变+它打破了我的测试;)您现在有解决方案了吗?谢谢您的输入,但它并没有真正回答我关于如何实现所需目标的问题,即:使用参数名称未知的Swagger文档表单提交端点。你能举一些例子说明怎么做吗?或者你是说这是不可能的?我是说在规范中,这是不允许的,因此工具中不支持。您可以随时对前端/后端进行黑客攻击以支持它,或者将您的反馈提供给规范,以便在下一版本中得到支持。OK,我创建了一个类,它实现了
可序列化
,并且有一个字段(
字符串
),带有getter和setter。使用它来代替上面示例中的
多值map
。我已将提供程序添加到
Dropwizard
,因此它将我的类识别为可接受的
application/x-www-form-urlencoded
。尽管如此,
Swagger
仍将此参数识别为
body
param,而不是
formData
。我应该怎么做才能将此参数识别为
formData
?看看如何注释
formData
类型:有点希望
consumes=MediaType。应用程序\u FORM\u URLENCODED
可以为未注释的参数做些什么。感谢您的输入,但它并没有真正回答我关于如何实现所需的问题,即:使用参数名称未知的Swagger文档表单提交端点。你能举一些例子说明怎么做吗?或者你是说这是不可能的?我是说在规范中,这是不允许的,因此工具中不支持。您可以随时对前端/后端进行黑客攻击以支持它,或者将您的反馈提供给规范,以便在下一版本中得到支持。OK,我创建了一个类,它实现了
可序列化
,并且有一个字段(
字符串
),带有getter和setter。使用它来代替上面示例中的
多值map
。我已将提供程序添加到
Dropwizard
,因此它将我的类识别为可接受的
application/x-www-form-urlencoded
。尽管如此,
Swagger
仍将此参数识别为
body
param,而不是
formData
。我应该怎么做才能将此参数识别为
formData
?看看如何注释
formData
类型:有点希望
consumes=MediaType。应用程序\u FORM\u URLENCODED
可以为未注释的参数做些什么。谢谢