如何告诉dropwizard swagger/swagger ui资源方法上没有请求正文?

如何告诉dropwizard swagger/swagger ui资源方法上没有请求正文?,swagger,swagger-ui,dropwizard,Swagger,Swagger Ui,Dropwizard,我正在整合到一个现有的大型项目中。 我现在已经启动并运行了Swagger UI端点,但我注意到似乎坚持每个方法都必须有一个body参数 具体来说,方法定义中没有@ApiParam注释的第一个参数将被解释为请求主体。似乎没有办法指定主体参数,也没有办法排除参数被Swagger UI自动标记为主体参数。这意味着“试用”功能对大部分端点不起作用,因为规范不允许实体,但Swagger UI始终坚持它们存在 例如,在 UserResource < /C>文件中考虑下面的方法: @GET @Path("v1

我正在整合到一个现有的大型项目中。 我现在已经启动并运行了
Swagger UI
端点,但我注意到似乎坚持每个方法都必须有一个body参数

具体来说,方法定义中没有
@ApiParam
注释的第一个参数将被解释为请求主体。似乎没有办法指定主体参数,也没有办法排除参数被
Swagger UI
自动标记为主体参数。这意味着“试用”功能对大部分端点不起作用,因为规范不允许实体,但
Swagger UI
始终坚持它们存在

例如,在<代码> UserResource < /C>文件中考虑下面的方法:

@GET
@Path("v1/users/{userId}/subscriptions")
@ApiOperation(value = "Get user subscriptions", notes = "Returns information about the users current and past subscriptions.")
@UserAccessRequired
@RolesAllowed({//a list of appropriate roles})
@Produces(CompanyMediaType.APPLICATION_API_V1_JSON)
public SubscriptionsDTOV1 getSubscriptionsForUser(@Auth DashboardUser dashboardUser, @JooqInject DSLContext database,
                                                  @Context ResourceContext resourceContext,
                                                  @Context ContainerRequestContext crc,
                                                  @ApiParam(value = "ID of user", type = "Integer") @NotNull @UnwrapValidatedValue @PathParam("userId") IntParam userId) {
Swagger将第一个参数
@Auth DashboardUser DashboardUser
解释为请求主体,并在
Swagger UI
中生成以下视图:

由于这是一个
GET
,因此不允许有正文,并且在测试时尝试删除
Swagger UI
中正文的内容是无效的,因为字段会自动填充
{}


我如何向
Swagger
表明此处没有body参数并使其工作?仅仅将
@ApiParam
放在其他方法参数前面是不起作用的,因为如果没有
@QueryParam
/
@PathParam
/etc注释存在,则该注释将被忽略。

结果表明添加@ApiParam(hidden=true)似乎起到了作用。我以前尝试过这个,但没有得到结果,一定是在某个地方有一个输入错误。

我也有同样的问题,并用同样的方法修复了它,但我认为应该有更好的方法使用显式OAUTH 2声明。问题在于,似乎只有在OAS 3中才可用: