如何告诉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中才可用: