Scala Swagger-为什么Swagger在我还没有为一个请求体字段编写注释的情况下创建一个请求体字段?
我已经为一个不需要请求主体的GET请求编写了一个招摇过市的ui。我没有使用Scala Swagger-为什么Swagger在我还没有为一个请求体字段编写注释的情况下创建一个请求体字段?,scala,akka,swagger,swagger-ui,swagger-akka-http,Scala,Akka,Swagger,Swagger Ui,Swagger Akka Http,我已经为一个不需要请求主体的GET请求编写了一个招摇过市的ui。我没有使用@RequestBody注释,那么为什么Swagger会在ui上显示RequestBody字段呢?即使我将其保留为空,也会导致API请求失败,并出现以下错误:TypeError:Failed to execute'fetch'on'Window':带有GET/HEAD方法的请求不能有正文。 我理解为什么会出现这个错误,swagger创建的curl有一个-d选项。但是我怎样才能关掉它呢 我使用的唯一注释是@Get、@Path
@RequestBody
注释,那么为什么Swagger会在ui上显示RequestBody字段呢?即使我将其保留为空,也会导致API请求失败,并出现以下错误:TypeError:Failed to execute'fetch'on'Window':带有GET/HEAD方法的请求不能有正文。
我理解为什么会出现这个错误,swagger创建的curl
有一个-d
选项。但是我怎样才能关掉它呢
我使用的唯一注释是@Get
、@Path
、@Operation
、@apirresponses
和@Parameters
简单地说,我如何告诉swagger我不需要请求主体?如果您没有对方法的某些参数进行注释,它将自动被视为请求主体。如果您不想这样做,则必须显式地将其注释为其他内容,或者使用类似于
@ApiParam(hidden=true)
的内容将其注释为忽略param:
这不是一个答案,所以我将添加它作为注释:如果您在招摇过市的注释上没有大量投资,那么放弃它,选择端点或TAPI。我一次又一次地看到,
swagger-core
的bug、不一致或反直觉的特性——虽然规范本身是好的,但Java注释->规范和规范->代码生成器是不可靠的,你会时不时地遇到这样的怪癖。
// example usage of Swagger with Akka HTTP
@ApiOperation(
httpMethod = "GET",
response = classOf[ApiResponseX],
value = "docs"
)
@ApiImplicitParams(
Array(
new ApiImplicitParam(
name = "id",
dataType = "string",
paramType = "query",
value = "id docs"
)
)
)
def fetchX(
// even if this value has custom handling I have to explicitly ignore it,
// to not make it into a request body
@ApiParam(hidden = true) id: UUID
): Route = ...